megalo.config.js 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. const path = require('path');
  2. module.exports = {
  3. // 构件生产模式时是否生成source map(仅在process.env.NODE_ENV === 'production' 时该选项生效)
  4. productionSourceMap: false,
  5. // 开启eslint格式化代码
  6. lintOnSave: true,
  7. configureWebpack: config => {
  8. // 你可以在这里粗放的修改webpack的配置并返回
  9. console.log('configureWebpack执行了');
  10. return config;
  11. },
  12. chainWebpack: chainConfig => {
  13. chainConfig.plugin('copy-webpack-plugin').tap(args => {
  14. args[0].push({
  15. context: path.resolve('src'),
  16. from: path.resolve('project.config.json'),
  17. to: path.resolve(`dist-${process.env.PLATFORM}/project.config.json`)
  18. });
  19. args[0].push({
  20. context: path.resolve('src'),
  21. from: path.resolve('src/vant'),
  22. to: path.resolve(`dist-${process.env.PLATFORM}/vant`)
  23. });
  24. // let str = /usingComponents:[\W](\{[\w\W]+?\})/
  25. // .exec(fs.readFileSync('src/main.js').toString())[1]
  26. // .replace(/[\s]/g, '')
  27. // .replace(/'/g, '"');
  28. // console.log(str);
  29. // let components = JSON.parse(str);
  30. // Object.keys(components).forEach(key => {
  31. // let from = path.resolve('src', components[key].replace(/^\//, ''), '../');
  32. // let to = path.resolve(`dist-${process.env.PLATFORM}`, components[key].replace(/^\//, ''), '../');
  33. // args[0].push({
  34. // context: path.resolve('src'),
  35. // from,
  36. // to
  37. // });
  38. // console.log(from, to);
  39. // });
  40. return args;
  41. });
  42. chainConfig.module
  43. .rule('less')
  44. .test(/\.less$/)
  45. .use('style-resources-loader')
  46. .loader('style-resources-loader')
  47. .options({
  48. patterns: [path.resolve(__dirname, './src/styles/common.less')]
  49. })
  50. .end();
  51. // 你可以在这里通过 https://github.com/neutrinojs/webpack-chain 来精细的修改webpack配置
  52. // console.log('chainWebpack执行了', chainConfig.toString())
  53. },
  54. // 原生小程序组件存放目录,默认为src/native
  55. // 如果你有多个平台的原生组件,你应当在此目录下再新建几个子文件夹,我们约定,子文件夹名和平台的名字一致:
  56. // 微信小程序组件则命名为 'wechat',支付宝为'alipay', 百度为 'swan'
  57. // 如果只有一个平台,则无需再新建子文件夹
  58. nativeDir: '/src/native',
  59. css: {
  60. loaderOptions: {
  61. css: {
  62. // https://github.com/webpack-contrib/css-loader#options
  63. },
  64. less: {
  65. // https://github.com/webpack-contrib/less-loader
  66. },
  67. sass: {
  68. // https://github.com/webpack-contrib/sass-loader
  69. },
  70. stylus: {
  71. // https://github.com/shama/stylus-loader
  72. },
  73. // https://github.com/megalojs/megalo-px2rpx-loader
  74. px2rpx: {
  75. rpxUnit: 0.5
  76. }
  77. }
  78. }
  79. };