aspnet core 如何在部署时构建 webpack
aspnet core how to webpack build on deploy
我有一个带有 vue.js 部分的 aspnet 核心应用程序,我使用 webpack 构建它并且一切正常。
现在我搜索一个解决方案来创建一个生产构建,创建我的 vue 包的缩小版本,并在生产模式下 运行 vue(没有 console.logs),我在 webpack.config
喜欢:
if (process.env.NODE_ENV === 'production') {
module.exports.plugins = [
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: '"production"'
}
}),
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
}
})
]
} else {
module.exports.devtool = '#source-map'
}
但是当我通过 gulp 对它进行 webpack 时,process.env.NODE_ENV
总是未定义的。
比起我尝试在 startup.cs
:
中的这一行使用 Microsoft.AspNetCore.SpaServices
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
...
if(env.IsDevelopment())
app.UseWebpackDevMiddleware();
...
}
这也像我的 gulp 配置一样工作正常并且 process.env.NODE_ENV
属性 设置为 'development'
现在我尝试在 VS 2017 中创建生产构建(构建 -> 发布项目名称),但没有 webpack 任务 运行s.
所以我尝试将其添加到我的 *.csproj 中:
<Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">
<Exec Command="npm run build" />
</Target>
这会引发错误:命令 "npm run build" 以代码 1 退出。
现在我没有其他办法解决它,希望有人能帮助我。谢谢!
解决使用:
在 .csproj
:
<Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">
<Exec Command="npm install" />
<Exec Command="npm run production" />
</Target>
并在我的 package.json
中添加脚本:
"scripts": {
"dev": "cross-env NODE_ENV=development webpack --hide-modules",
"production": "cross-env NODE_ENV=production webpack --hide-modules"
}
这需要安装 webpack
和 cross-env
包(以及 webpack 期间使用的所有其他包)和工作 webpack.config.js
询问是否有人对我的 webpack.config.js
或其他一些代码感兴趣
我有一个带有 vue.js 部分的 aspnet 核心应用程序,我使用 webpack 构建它并且一切正常。
现在我搜索一个解决方案来创建一个生产构建,创建我的 vue 包的缩小版本,并在生产模式下 运行 vue(没有 console.logs),我在 webpack.config
喜欢:
if (process.env.NODE_ENV === 'production') {
module.exports.plugins = [
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: '"production"'
}
}),
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
}
})
]
} else {
module.exports.devtool = '#source-map'
}
但是当我通过 gulp 对它进行 webpack 时,process.env.NODE_ENV
总是未定义的。
比起我尝试在 startup.cs
:
Microsoft.AspNetCore.SpaServices
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
...
if(env.IsDevelopment())
app.UseWebpackDevMiddleware();
...
}
这也像我的 gulp 配置一样工作正常并且 process.env.NODE_ENV
属性 设置为 'development'
现在我尝试在 VS 2017 中创建生产构建(构建 -> 发布项目名称),但没有 webpack 任务 运行s.
所以我尝试将其添加到我的 *.csproj 中:
<Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">
<Exec Command="npm run build" />
</Target>
这会引发错误:命令 "npm run build" 以代码 1 退出。
现在我没有其他办法解决它,希望有人能帮助我。谢谢!
解决使用:
在 .csproj
:
<Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">
<Exec Command="npm install" />
<Exec Command="npm run production" />
</Target>
并在我的 package.json
中添加脚本:
"scripts": {
"dev": "cross-env NODE_ENV=development webpack --hide-modules",
"production": "cross-env NODE_ENV=production webpack --hide-modules"
}
这需要安装 webpack
和 cross-env
包(以及 webpack 期间使用的所有其他包)和工作 webpack.config.js
询问是否有人对我的 webpack.config.js
或其他一些代码感兴趣