在使用yo angular fullstack的脚手架生成的项目中,我通常使用grunt使用grunt启动应用程序(我不是专家)。
示例
grunt
grunt serve
等等。
据我所知,我有三种不同的环境(开发,测试,生产)。每次我需要更改时,我必须转到主文件更改正确的行(默认为开发)。
如何从终端中选择其中一个?我完全相信必须有办法从咕噜声......
我可以想象它必须像
grunt serve --env:prod
grunt serve --test
grunt serve development
我已经尝试了所有这些,但没有,我花了一些时间试图从Gruntfile中找出它,但我找不到谷歌搜索。
有谁知道怎么做?任何帮助将不胜感激
答案 0 :(得分:1)
您可以像这样NODE_ENV=production grunt
启动您的应用,并且环境变量仅在此执行中生成。如果要设置环境变量,可以执行
> export NODE_ENV=production
> grunt
在您为其他环境更改环境变量之前,您的环境变量将保持生产状态。
答案 1 :(得分:1)
查看serve
任务。有不同的目标。您可以通过附加冒号和目标名称来设置目标。
<强>开发强>
grunt serve
分销(生产)
grunt serve:dist
<强>调试强>
grunt serve:debug
通过设定目标,Grunt将执行不同的任务。
serve
任务
grunt.registerTask('serve', function (target) {
if (target === 'dist') {
return grunt.task.run(['build', 'env:all', 'env:prod', 'express:prod', 'wait', 'open', 'express-keepalive']);
}
if (target === 'debug') {
return grunt.task.run([
'clean:server',
'env:all',<% if(filters.stylus) { %>
'injector:stylus', <% } %><% if(filters.less) { %>
'injector:less', <% } %><% if(filters.sass) { %>
'injector:sass', <% } %>
'concurrent:server',
'injector',
'wiredep',
'autoprefixer',
'concurrent:debug'
]);
}
grunt.task.run([
'clean:server',
'env:all',<% if(filters.stylus) { %>
'injector:stylus', <% } %><% if(filters.less) { %>
'injector:less', <% } %><% if(filters.sass) { %>
'injector:sass', <% } %>
'concurrent:server',
'injector',
'wiredep',
'autoprefixer',
'express:dev',
'wait',
'open',
'watch'
]);
});