Javascript jenkins中网页包装的config.js中章鱼变量替换策略

Javascript jenkins中网页包装的config.js中章鱼变量替换策略,javascript,jenkins,webpack,octopus-deploy,variable-substitution,Javascript,Jenkins,Webpack,Octopus Deploy,Variable Substitution,我正在一个ES6 AngularJS项目中工作,我正在使用webpack将所有内容打包到dist/app.js 我正在使用的CI/CD堆栈是SCM-Jenkins-Octopus: 对我的代码的更新被推送到存储库中 Jenkins克隆存储库,调用npm install和gulp,使用gulp webpack从一个入口点捆绑和缩小所有内容,并将其放入dist/app.js 构建后,Jenkins将应用程序打包成一个nuget pkg,并将其推送到Octopus Deploy,在那里应用程序被部署到

我正在一个ES6 AngularJS项目中工作,我正在使用webpack将所有内容打包到
dist/app.js

我正在使用的CI/CD堆栈是SCM-Jenkins-Octopus:

  • 对我的代码的更新被推送到存储库中

  • Jenkins克隆存储库,调用
    npm install
    gulp
    ,使用
    gulp webpack
    从一个入口点捆绑和缩小所有内容,并将其放入
    dist/app.js

  • 构建后,Jenkins将应用程序打包成一个nuget pkg,并将其推送到Octopus Deploy,在那里应用程序被部署到IIS
  • octopus项目在多个环境中工作,我必须有一种方法根据环境替换一些配置变量。为此,Octopus提供了“文件中的替代变量”部署步骤

    当我没有使用模块绑定器和ES6时,我只需要一个配置文件来设置一些角度常数,然后我就可以使用它了。我会有一个
    config.js
    文件和一个
    config.template.js
    文件。Octopus将替换
    config.template.js
    文件中的变量,我将其设置为在部署后用
    config.template.js
    替换
    config.js

    然而,现在我只使用一个普通的
    config.js
    ,它导出我需要使用的变量,然后将这些变量导入相关的文件(比如包含角度控制器函数的文件)


    有了这个设置,我不能像以前那样进行替换,因为我的
    config.js
    将包含在
    dist/app.js
    中。有谁能帮我想出一个如何实现这一目标的策略吗?我想在构建之前交换
    config.js
    -
    config.template.js
    变量,然后让Octopus替换整个
    app.js
    包中的变量,但这似乎效率很低

    我们在构建过程中也遇到了类似的问题,同样感到困惑。我们决定使用JS本身来确定令牌是否已被替换,从而使其在本地dev(预部署)中工作

    我们添加了如下代码:

    // config --------------------------
    (function () {
        // These values will be replaced by Octopus during deployment.
        var configuredApiUrl = "#{Api:Url}";
        apiUrl = (configuredApiUrl[0] !== "#") ?
            configuredApiUrl : "http://api.local/v1";        
    })();
    
    然后在输出文件上设置变量替换


    我希望这有帮助

    为了清楚起见,在octopus中,您已经为包含所有代码/模块的输出包设置了替换?