我有一个asp.net核心应用程序,类似于aspnetcore-spa
提供的。 Webpack已设置为--env.prod
和--env.dev
,并通过JavaScriptServices
集成。
从Visual Studio 2015构建和运行应用程序似乎工作正常*。使用Development
环境的调试版本在Kestrel上正常运行 - webpack中间件(重新)构建客户端应用程序并且热模块替换效果很好(虽然有点慢 - 很可能是由于它必须复制的硬编码引用资产)。
*但是,从不重建供应商包,也不会运行--env.prod
webpack构建。我认为这一切都有效(即使在示例中)仅仅因为文件的一个版本被提交到存储库。
运行dotnet run
或dotnet build
是不够的,因为这不会触及webpack。我可以在package.json
为此提供一些脚本,我不知道如何(或者如果)我可以将它嵌入到Visual Studio的构建中 - 而且,使用npm
代替我感觉有点脏直接dotnet
。
这整个问题也与我构建可调试的docker镜像的问题有关。我想我可以在容器中运行webpack并复制所有来源 - 但这仍然留下了问题:
如何将webpack构建集成到Visual Studio中(甚至更好,dotnet
)?
答案 0 :(得分:0)
npm
脚本npm run build-webpack-dev-vendor
,这是一个运行npm-run webpack --env.dev --config ./config/webpack.config.vendor.js
webpack的构建输出放入wwwroot
目录,其整个内容被gitignored(.gitignore
除外)。
这些脚本用于任何或所有webpack构建。
"build-webpack-dev": "npm run build-webpack-dev-vendor && npm run build-webpack-dev-app",
"build-webpack-dev-vendor": "npm-run webpack --config ./config/webpack.config.vendor.js --env.dev",
"build-webpack-dev-app": "npm-run webpack --env.dev --display-modules",
"build-webpack-prod": "npm run build-webpack-prod-vendor && npm run build-webpack-prod-app",
"build-webpack-prod-vendor": "npm-run webpack --config ./config/webpack.config.vendor.js --env.prod",
"build-webpack-prod-app": "npm-run webpack --env.prod --display-modules",
我们的配置无法识别prod和dev供应商构建。
注意:需要安装npm-run
。
这些脚本用于构建和发布我们的docker镜像。 我们有 fast 脚本的变体,可以加快发布速度(无需重建,无需额外登录)。
"docker-build-prod": "dotnet publish --configuration Release && docker build bin\\Release\\netcoreapp1.1\\publish -t company/product:tag --no-cache",
"docker-publish-prod": "npm run docker-build-prod && docker login && docker push company/product:tag",
"docker-publish-prod-fast": "docker push company/product:tag",
"docker-login": "docker login",
开发人员应该检查构建输出,如果应用程序中有任何捆绑包应该移动到供应商捆绑包(因此在webpack构建中使用--display-modules
)。< / p>
最后,并非我们团队中的每个人都使用Visual Studio(例如设计师)。我们为它们提供了脚本和一些更通用的脚本。
fast 变体跳过npm install
,构建供应商包并恢复nuget包。
"start-dev": "npm install && npm run build-webpack-dev && dotnet restore && dotnet run --configuration Debug --environment \"Development\"",
"start-dev-fast": "dotnet run --configuration Debug --environment \"Development\"",
"start-prod": "npm install && npm run build-webpack-prod && dotnet restore && dotnet run --configuration Release --environment \"Production\"",
"start-prod-fast": "npm run build-webpack-prod-app && dotnet run --configuration Release --environment \"Production\"",
最后,为了好的措施
"refresh": "npm install && dotnet restore"
我希望有帮助,我愿意就如何改善这一点提出建议:)