webpack 热替换,部署生产环境的问题

2019-02-22 16:55:36 +08:00
 TomVista

webpack.config.js 如下.

module.exports = {
    devtool: 'eval-source-map',
    entry:  __dirname + "/src/index.js",
    output: {
      path: __dirname + "/public",
      filename: "bundle.js"
    },
    mode:'development',
    devServer: {
      port:8080,
      contentBase: "./public",//本地服务器所加载的页面所在的目录
      historyApiFallback: true,//不跳转
      inline: true//实时刷新
    } 
  }

使用 webapck-dev-server 作为开发服务器,所有的打包后的 js 只能通过 http://loaclhost:8080/xxx.js 访问.

开发时也能使用相对路径访问 js.

使用 webpack 命令打包成 js 文件,原有的开发服务器引用路径都要修改,如何解决这个问题?

801 次点击
所在节点    问与答
3 条回复
TomVista
2019-02-22 17:12:45 +08:00
```
module.exports = {
devtool: 'eval-source-map',
entry: __dirname + "/src/index.js",
output: {
path: __dirname + "/dist",
filename: "bundle.js"
},
mode:'development',
devServer: {
contentBase: __dirname,//本地服务器所加载的页面所在的目录
publicPath:"/dist/",
historyApiFallback: true,//不跳转
inline: true//实时刷新
}
}
```


在 devServer 中使用 publicPath 选项
chairuosen
2019-02-22 17:15:26 +08:00
不同环境用不同配置文件
TomVista
2019-02-22 17:24:17 +08:00
@chairuosen devServer.publicPath 可以指定 webpack-dev-server 打包到内存中的 js 的 访问路径.

最终的 js 路径为 contentBase+publicPath+name.js

把 webpack 命令的出口文件地址指向 contentBase+publicPath,这样就统一了开发和部署的目录结构.

到时候复制粘贴走起..

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/537705

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX