MSBuild and Webpack

前端 未结 2 1696
遥遥无期
遥遥无期 2020-12-24 09:19

I am developing an Angular2 application in VS2015 and have a webpack bundling and minification environment set up for the same.

This is my webpack.conf.js

相关标签:
2条回答
  • 2020-12-24 09:35

    Put different scripts in package.json for development and production mode. Then on 'AfterBuild' event of visual studio, call those scripts on different configurations.

    Add following two scripts, 'buildDev' and 'buildProd' in package.json:

    "scripts": {
        "buildDev": "SET NODE_ENV=development && webpack -d --color",
        "buildProd": "SET NODE_ENV=production && webpack -p --color",
      }
    

    In AfterBuild events of visual studio add these two conditional commands:

    <Target Name="AfterBuild">
        <Exec Condition="$(Configuration) == 'Debug'" Command="npm run buildDev" />
        <Exec Condition="$(Configuration) == 'Release'" Command="npm run buildProd" />
      </Target>
    

    And finally webpack.conf.js like this:

    switch (process.env.NODE_ENV.trim()) {
        case 'prod':
        case 'production':
            module.exports = require('./config/webpack.prod');
            break;
        case 'dev':
        case 'development':
        default:
            module.exports = require('./config/webpack.dev');
            break;
    }
    

    Important Note: Make sure to use trim() function with process.env.NODE_ENV as cmd will treat the blank space in the command "SET NODE_ENV=development && webpack -d --color as character and append it in NODE_ENV variable. So when we are setting it as 'development', it actually gets set as (development + whitespace).

    0 讨论(0)
  • 2020-12-24 09:36

    For TFS CI build, you can refer to these steps to achieve your requirement.

    1. Add npm step
    2. Add Command Line step

    Note: There is –bail argument, which is required otherwise the step/task will be succeed even though webpack command throws exception.

    Also, you can add variable in build definition (variable tab)

    0 讨论(0)
提交回复
热议问题