wen*_*t88 4 gulp webpack vue.js asp.net-core visual-studio-2017
我有一个带有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'
}
Run Code Online (Sandbox Code Playgroud)
但是process.env.NODE_ENV
当我通过gulp进行webpack时总是未定义的.比我尝试使用Microsoft.AspNetCore.SpaServices
这一行startup.cs
:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
...
if(env.IsDevelopment())
app.UseWebpackDevMiddleware();
...
}
Run Code Online (Sandbox Code Playgroud)
这也很好,就像我的gulp配置和process.env.NODE_ENV
属性设置'development'
现在我尝试在VS 2017(Build - > Publish Projectname)中创建生产版本,但没有运行webpack任务.
所以我试着在我的*.csproj中添加它:
<Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">
<Exec Command="npm run build" />
</Target>
Run Code Online (Sandbox Code Playgroud)
这会引发错误:命令"npm run build"退出,代码为1.
现在我没有其他想法来解决它,希望任何人都可以帮助我.谢谢!
解决了使用:in .csproj
:
<Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">
<Exec Command="npm install" />
<Exec Command="npm run production" />
</Target>
Run Code Online (Sandbox Code Playgroud)
并在我的脚本中添加脚本package.json
:
"scripts": {
"dev": "cross-env NODE_ENV=development webpack --hide-modules",
"production": "cross-env NODE_ENV=production webpack --hide-modules"
}
Run Code Online (Sandbox Code Playgroud)
这个需求webpack
和cross-env
包(以及webpack期间所有其他使用的包)安装和工作webpack.config.js
询问是否有人对我webpack.config.js
或其他代码感兴趣
归档时间: |
|
查看次数: |
3103 次 |
最近记录: |