编译配置存放于项目根目录下 config 目录中,包含三个文件

  • index.js 是通用配置
  • dev.js 是项目预览时的配置
  • prod.js 是项目打包时的配置

index.js —— 通用配置

  1. const config = {
  2. // 项目名称
  3. projectName: 'kj',
  4. // 项目创建日期
  5. date: '2018-6-8',
  6. // 设计稿尺寸
  7. designWidth: 750,
  8. // 项目源码目录
  9. sourceRoot: 'src',
  10. // 项目产出目录
  11. outputRoot: 'dist',
  12. // 通用插件配置
  13. plugins: {
  14. babel: {
  15. sourceMap: true,
  16. presets: ['env'],
  17. plugins: ['transform-class-properties', 'transform-decorators-legacy', 'transform-object-rest-spread']
  18. }
  19. },
  20. // 全局变量设置
  21. defineConstants: {},
  22. // 文件 copy 配置
  23. copy: {
  24. patterns: [
  25. ],
  26. options: {
  27. }
  28. },
  29. // 小程序端专用配置
  30. weapp: {
  31. module: {
  32. postcss: {
  33. autoprefixer: {
  34. enable: true
  35. },
  36. // 小程序端样式引用本地资源内联配置
  37. url: {
  38. enable: true,
  39. config: {
  40. limit: 10240
  41. }
  42. }
  43. }
  44. },
  45. // 替换 JSX 中的属性名,参考:
  46. // https://github.com/NervJS/taro/issues/2077
  47. jsxAttributeNameReplace: {}
  48. },
  49. // H5 端专用配置
  50. h5: {
  51. publicPath: '/',
  52. staticDirectory: 'static',
  53. module: {
  54. postcss: {
  55. autoprefixer: {
  56. enable: true
  57. }
  58. }
  59. },
  60. // 自定义 Webpack 配置
  61. webpackChain: {},
  62. devServer: {}
  63. }
  64. };
  65. module.exports = function(merge) {
  66. if (process.env.NODE_ENV === 'development') {
  67. return merge({}, config, require('./dev'));
  68. }
  69. return merge({}, config, require('./prod'));
  70. };