webpack-dev-server和webpack - >输出文件到父目录并让webpack-dev-server热重载仍然有效

时间:2018-01-16 12:47:27

标签: javascript json webpack webpack-dev-server webpack-hmr

我们的网络应用程序中有以下结构:

/src(.sln)
--/ClientSite
--/AdminSite
--/SharedWeb

SharedWeb中,我们有以下文件夹:

--/Client
--/Admin
--/Shared

我们有这个结构,无论我们编辑什么文件只有一个webpack-dev-server,都可以使用package.json进行热重新加载。如果有兴趣的话,我们选择这个结构的主题:

Shared react front end components -> Separate project with TypeScript -> Visual Studio 2017

到目前为止,一切都运行良好,但现在我们需要部署我们的解决方案,我们需要将bundle.js导出到正确的网站。

webpack.client.config.js

热重新加载正常,但脚本文件未正确导出到网站:

output: {
    filename: "./Scripts/dist/[name].bundle.js",
},

正确导出脚本文件,但热重新加载停止工作:

output: {
    filename: "../ClientSite/Scripts/dist/[name].bundle.js",
},

根据文档使用路径和文件名的正确方法,没有任何作用:

output: {
    path: path.resolve(__dirname, "Scripts/dist/"),
    filename: "[name].bundle.js"
}

正确导出脚本文件,但热重新加载不起作用。如果我将webpack--watch一起使用并手动重新加载webpack-dev-server网址,我可以看到更改,但不会自动重新加载。

output: {
    path: path.resolve(__dirname, "../ClientSite/Scripts/dist/"),
    filename: "[name].bundle.js"
},

1 个答案:

答案 0 :(得分:1)

解决此问题,publicPath是自动更新在webpack-dev-server中工作的关键。

output: {
    path: path.resolve(__dirname, "../ClientSite/Scripts/dist/"),
    publicPath: '/Scripts/dist',
    filename: "[name].bundle.js"
},

https://github.com/webpack/docs/wiki/configuration#outputpublicpath