output 属性

output 里包含两个配置路径,path 和 publicPath,path 指定打包输出的目录, publicPath 指定index.html内部的引用路径。

  1. output: {
  2. filename: 'js/main.js',
  3. path: path.resolve(__dirname, 'dist'), // 输出到根目录的 dist 目录下
  4. publicPath: './' // 相对路径,使用这种配置 webpack-dev-server 会报错
  5. // publicPath: '/' // 绝对路径,使用这种配置 build 后打开 index.html 会报错
  6. },

devServer 属性

devServer 里包含两个配置路径,publicPath 和 contentBase,publicPath 指定 dev-server 启动的目录,实际上磁盘上并没有这个目录,contentBase 指定不需要经过打包的资源的路径。

  1. devServer: {
  2. publicPath: '/lg' // 启动后需要在端口后加上 '/lg' 才能访问
  3. contentBase: ['./public'], // 直接拷贝 public 下的资源
  4. },

两个 publicPath 的关系

两个 publicPath 最好设置成一致,否则会出现资源找不到的情况。