| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- const fs = require('fs')
- const path = require('path')
- const glob = require('glob')
- const loaderUtils = require('loader-utils')
- const isWin = /^win/.test(process.platform)
- const normalizePath = path => (isWin ? path.replace(/\\/g, '/') : path)
- module.exports = function loader(source) {
- const options = loaderUtils.getOptions(this)
- const baseDir = options['base']
- const extendsDir = options['extends']
- const exportCode = []
- const extendsFiles = []
- // extends目录均导出
- glob.sync('**/*.js', {
- cwd: extendsDir
- }).forEach(file => {
- if (file === 'index.js') {
- return
- }
- extendsFiles.push(file)
- exportCode.push(`export * from 'uni-sub-platform-api/${normalizePath(file)}'`)
- })
- //base目录中有,extends无的导出
- glob.sync('**/*.js', {
- cwd: baseDir
- }).forEach(file => {
- if (file === 'index.js') {
- return
- }
- if (!extendsFiles.includes(file)) {
- exportCode.push(`export * from 'uni-platform-api/${normalizePath(file)}'`)
- }
- })
- // console.log(exportCode.join('\n'))
- return exportCode.join('\n')
- }
|