【问题标题】:ASP.NET Core - Run webpack on Azure with git deployASP.NET Core - 使用 git deploy 在 Azure 上运行 webpack
【发布时间】:2017-04-10 14:05:45
【问题描述】:

我正在开发一个 ASP.NET Core Web 应用程序 (.csproj),它直接从 git 存储库部署在 Azure 上。我还使用 webpack 将生产包生成到 wwwroot/build 文件夹中。

我不希望这些文件在我的仓库中,所以我将它们排除在外,但当然在执行 gitdeploy 时文件不会发送到服务器。问题是我需要运行一个自定义部署脚本,这样我才能运行 npm run prod-build (在 package.json 文件中设置的脚本),它使用生产标志运行 webpack。我正在研究一个 kudu 脚本,但找不到任何新的 ASP.NET Core 格式的示例。

我可以创建一个部署分支并将包推送到其中,但我正在尝试寻找一个“更清洁”的解决方案。

对于实现这一目标的最佳方法有什么想法吗?

谢谢!

【问题讨论】:

    标签: git azure deployment webpack asp.net-core


    【解决方案1】:

    .csproj 文件中的以下配置适用于我的 webpack 脚本。您可以尝试将其替换为您的脚本。

    <Target Name="RunWebpack" BeforeTargets="Publish">
        <Exec Command="npm install" />
        <Exec Command="npm install webpack" />
        <Exec Command="npm install vue-loader" />
        <Exec Command="npm install vue-template-compiler" />
        <Exec Command="node node_modules/webpack/bin/webpack.js --config webpack.config.js --env.prod" />
    </Target>
    

    【讨论】:

      【解决方案2】:

      一个选项是将您的应用服务的默认节点(又名 NodeJS)版本设置为较新的版本,例如10.14.1。

      要更改默认节点版本,请打开 Azure 门户并导航到 Azure 应用服务的应用程序设置。然后将名为WEBSITE_NODE_DEFAULT_VERSION 的设置更改为10.14.1(或更高版本)。

      有了这些,您可以将 webpack 添加到您的 package.json 文件中的 devDependencies 并在项目的构建后事件中运行 npx webpack。这假定文件 webpack.config.js 位于项目的根目录(与 .csproj 文件相同的目录)。

      要确定哪些节点版本可用于您的应用服务,您可以使用“高级工具”(也可从 Azure 门户中的应用服务获得)。打开高级工具的浏览器窗口后,单击“调试控制台”,然后单击“PowerShell”。使用dc 切换到目录D:\Program Files (x86)\nodejs。每个安装的节点版本都在一个单独的目录中。


      注意事项:

      1. npx - 严格来说 - 是 npm 的一部分。但是,更高版本的 node 也将具有更新版本的 npm。节点 10.14.1 附带 npm 版本 6.4.1。 npx 是在 npm 5.2 版本中引入的。

      2. 要将 webpack 添加到您的 package.json 文件,请在该 package.json 文件的目录中执行 npm install webpack --save-dev

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-08-24
        • 2021-10-21
        • 1970-01-01
        • 2021-05-20
        • 1970-01-01
        • 2020-11-29
        • 2018-05-19
        • 2018-09-22
        相关资源
        最近更新 更多