2016-10-29 79 views
8

我有Angular 2 and Webpack 2 starter,它通过webpack-dev-server在节点上运行,我使用web-api从visual studio运行它。如何让webpack和iis一起工作?

问题是,当angular2-的WebPack起动运行在端口3000和IIS快递的WebPack-DEV-服务器的不同端口上运行5000

,因为我想用HMR和重装这是对我很重要每次文件改变。

那么,怎样才能把它们结合在一起呢?在相同的端口上运行?或任何其他解决方案?

回答

11

我发现它! - 结合现有服务器 摘要和示例:

您可能想要在开发中运行后端服务器或模拟它。你不应该使用webpack-dev-server作为后端。它唯一的目的是提供静态(webpacked)资产。

您可以并排运行两个服务器:webpack-dev-server和后端服务器。

在这种情况下,即使运行在由后端服务器发送的HTML页面上,您也需要教导webpack生成的资产向webpack-dev-server发出请求。另一方面,您需要教您的后端服务器生成包含脚本标记的HTML页面,这些脚本标记指向webpack-dev-server上的资产。除此之外,您需要webpack-dev-server和webpack-dev-server运行时之间的连接来触发重新编译时的重新加载。

要让webpack向webpack-dev-server发送请求(对于块加载或HMR),您需要在output.publicPath选项中提供完整的URL。

要使webpack-dev-server及其运行时间最佳连接,请使用inline模式使用内联模式。 webpack-dev-server CLI自动包含一个建立WebSocket连接的入口点。 (如果您将webpack-dev-server的--content-base指向后端服务器,也可以使用iframe模式。如果需要与后端服务器建立websocket连接,则必须使用iframe模式。

当您使用内联模式只是在你的网页浏览器打开后端服务器URL(如果你使用的iframe模式打开的WebPack-DEV-服务器的/的WebPack-dev的服务器/前缀的网址)。

https://webpack.github.io/docs/webpack-dev-server.html#combining-with-an-existing-server

+4

你有一个与我们的工作webpack配置这个解决方案或与示例代码的良好链接的git例子? – squadwuschel

0

接受的答案是1版本。如果您使用的版本2,你可以使用VUE模板,让你开始。

根据现有的vue模板,我制作了一个vue模板,您可以使用vue-cli进行安装。这个模板快速启动您可以扩展或集成到您现有环境中的vue应用程序。

npm install -g vue-cli 
vue init delcon/webpack-simple 
cd my-project 
npm install 

devwatch:

此模板有手表filechanges而不是使用的WebPack-DEV-服务器的额外的运行devwatch选项。这使其可用于任何现有的Web服务器环境。它使用livereload来更新浏览器的更改。

npm run devwatch 

开发:

使用默认的WebPack-dev的服务器上运行它,删除<script src="http://localhost:35729/livereload.js"></script>index.html

npm run dev 

编译:

建立你生产项目:

npm run build