为什么 webpack.config.js 文件只能使用 commonJS 代码

154 阅读1分钟

webpack.config.js

为什么 webpack.config.js 文件只能使用 commonJS 代码

因为webpack.config.js配置文件参数打包过程运行,是在node环境运行打包的,而node环境不多加配置默认不支持ESModule,而开发环境之所以两者都可以使用,是因为开发环境代码在打包的时候,webpack只是把他当成字符串、文件去解析,分析他的依赖,并不会去运行代码,故就算开发环境代码有错误它也不会报错。但webpack.config.js是在node环境运行的,如果你在webpack.config.js里面执行一些浏览器代码,比如console.log(window),那么webpack打包过程就会报错。总之就是说webpack.config.js参与打包过程代码运行,而其它文件不参与

module.exports = {
      mode: 'development', //or production 配置打包环境
      entry: 'index.js',//配置入口文件
      devtool: 'none',//配置source map
      output: {
        filename: 'bundle.js' //配置打包文件名(默认main.js)
      }
  }