使用节点启动应用程序时传入 Angular 个变量

Pass in Angular variables when starting app with node

我的客户端 app.js 在 angular.js:

中有这个设置
var options = {};
options.api = {};
options.api.base_url = "http://myDomainName.tld:8080";

当我构建我的应用程序时,我需要能够在 CLI 上更改它。

我的想法是用 grunt 来做。

关于如何解决这个问题还有其他想法吗?

您可以使用grunt-template模块。

将您的 app.js 文件添加为 app.js.tpl

app.js.tpl

var options = {};
options.api = {};
options.api.base_url = "<%= base_url %>";

Gruntfile.js

module.exports = function(grunt) {
    grunt.initConfig({
        'template': {
            'process-js-template': {
                'options': {
                    'data': {
                        'base_url': 'http://myDomainName.tld:8080'
                        //Can also use 'base_url': grunt.option('base_url')
                        //If you wanted to take it from the CLI.
                        //EG: grunt default --base_url=http://myDomainName.tld:8080
                    }
                },
                'files': {
                    //The key being where you want to save the file.
                    'path/to/app.js': ['path/to/app.js.tpl']
                }
            }
        }
    });
    grunt.loadNpmTasks('grunt-template');
    grunt.registerTask('default', [
        'template'
    ]);
};