【发布时间】:2017-08-24 15:11:51
【问题描述】:
我有一个带有 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 中创建生产版本(Build -> Publish Projectname),但没有运行 webpack 任务。
所以我尝试在我的 *.csproj 中添加这个:
<Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">
<Exec Command="npm run build" />
</Target>
这会引发错误:命令“npm run build”以代码 1 退出。
现在我没有其他想法来解决它,希望任何人都可以帮助我。谢了!
【问题讨论】:
-
构建输出通常会为您提供比
exited with code 1更多的信息。是什么导致 npm 命令失败? -
npm ERR! missing script: build如果我尝试使用命令gulp min我会收到以下错误: -
\node_modules\gulp-sass\node_modules\node-sass\lib\binding.js:15 throw new Error(errors.missingBinary()); ^ EXEC(0,0): Error : Missing binding \node_modules\gulp-sass\node_modules\node-sass\vendor\win32-x64-48\binding.node Node Sass 找不到当前环境的绑定:Windows 64 -bit with Node.js 6.x 找到了以下环境的绑定: - Windows 64-bit with Node.js 5.x 这通常是因为您的环境在运行
npm install后发生了变化。运行npm rebuild node-sass为您当前的环境构建绑定。 -
是的,只需要运行 npm 安装。
标签: webpack asp.net-core gulp vue.js visual-studio-2017