足力健前端,vue版本

index.js 1.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. const fs = require('fs')
  2. const path = require('path')
  3. const glob = require('glob')
  4. const loaderUtils = require('loader-utils')
  5. const isWin = /^win/.test(process.platform)
  6. const normalizePath = path => (isWin ? path.replace(/\\/g, '/') : path)
  7. module.exports = function loader(source) {
  8. const options = loaderUtils.getOptions(this)
  9. const baseDir = options['base']
  10. const extendsDir = options['extends']
  11. const exportCode = []
  12. const extendsFiles = []
  13. // extends目录均导出
  14. glob.sync('**/*.js', {
  15. cwd: extendsDir
  16. }).forEach(file => {
  17. if (file === 'index.js') {
  18. return
  19. }
  20. extendsFiles.push(file)
  21. exportCode.push(`export * from 'uni-sub-platform-api/${normalizePath(file)}'`)
  22. })
  23. //base目录中有,extends无的导出
  24. glob.sync('**/*.js', {
  25. cwd: baseDir
  26. }).forEach(file => {
  27. if (file === 'index.js') {
  28. return
  29. }
  30. if (!extendsFiles.includes(file)) {
  31. exportCode.push(`export * from 'uni-platform-api/${normalizePath(file)}'`)
  32. }
  33. })
  34. // console.log(exportCode.join('\n'))
  35. return exportCode.join('\n')
  36. }