我有一个带有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
总是未定义的。
我试图在Microsoft.AspNetCore.SpaServices
中使用startup.cs
这一行:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
...
if(env.IsDevelopment())
app.UseWebpackDevMiddleware();
...
}
这也很好,就像我的gulp配置一样,process.env.NODE_ENV
属性设置为'development'
现在我尝试在VS 2017中创建生产版本(Build - > Publish Projectname),但没有运行webpack任务。
所以我试着在我的* .csproj中添加它:
<Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">
<Exec Command="npm run build" />
</Target>
这会引发错误:命令“npm run build”退出,代码为1。
现在我没有其他想法来解决它,希望任何人都可以帮助我。 THX!
答案 0 :(得分:6)
决定使用:
在.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
&amp;已安装cross-env
个软件包(以及webpack期间使用的所有其他软件包)&amp;工作webpack.config.js
询问是否有人对我的webpack.config.js
或其他代码