webpack - aspnet core 如何在部署时构建 webpack

标签 webpack asp.net-core gulp vue.js 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'
}

但是 process.env.NODE_ENV 当我通过 gulp 对其进行 webpack 时,它始终是未定义的。 比起我尝试使用 Microsoft.AspNetCore.SpaServicesstartup.cs 中的这一行:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
...
    if(env.IsDevelopment())
        app.UseWebpackDevMiddleware();
...
}

这也很好,就像我的 gulp 配置和 process.env.NODE_ENV 属性设置为 'development'

现在我尝试在 VS 2017 中创建生产构建(构建 -> 发布项目名称),但没有运行 webpack 任务。

所以我尝试将其添加到我的 *.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"
}

这需要安装 webpackcross-env 包(以及 webpack 期间使用的所有其他包)和一个有效的 webpack.config.js

询问是否有人对我的 webpack.config.js 或其他代码感兴趣

关于webpack - aspnet core 如何在部署时构建 webpack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43122177/

相关文章:

javascript - 使用 Watchify 时,Browserify + Babelify Gulp 任务不会终止

Angular 错误 TS2304 : Cannot find name 'config'

angular - Webpack 提供的 Angular 2 App 的基于环境的属性?

c# - 如何对使用 Response.OnStarting 的 .NET 中间件进行单元测试

c# - 如何使用 Linq Skip 和 Take 调用 Expression<Func<T, bool>> 参数化函数

javascript - 如何使用正则表达式更新有路径和无路径的图像

regex - typescript 无法解析正则表达式中的命名组

javascript - Webpack使用html文件中的html文字提取js

jquery - 限制选项卡仅打开一次,以便用户无法在jquery中创建多个选项卡

Gulp Inject 没有注入(inject)我的所有文件。只添加一个 main.scss 文件