根据环境,我想将js文件中的HTTP请求运行到URL或其他URL。
例如,我有这样的东西:
我想要执行的是grunt文件并指定env,因此js文件应读取该选项,然后向网址或其他网址发出请求。
例如:
grunt default --env=prod
我怎么对js文件说URL是dev,preprd或prod一个?
答案 0 :(得分:1)
Node.js API公开了process
对象,该对象将环境变量存储在其env
属性中。运行时之前设置的每个环境变量都将位于process.env
内部。
例如:
$ NODE_ENV=production node -e 'console.log(process.env.NODE_ENV)'
将输出:
production
在特定情况下,可以在Gruntfile.js中使用process.env
,然后在运行grunt时可以像上面的示例一样使用它。
Gruntfile.js
改编自Grunt.js website
module.exports = function(grunt) {
grunt.initConfig({
jshint: {
files: ['Gruntfile.js', 'src/**/*.js', 'test/**/*.js'],
options: {
globals: {
jQuery: true
}
}
},
watch: {
files: ['<%= jshint.files %>'],
tasks: process.env.PRODUCTION ? [] : ['jshint']
}
});
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.registerTask('default', ['jshint']);
};
然后,如果您运行
$ grunt watch # PRODUCTION environment variable is not set
它将在观看jshint
时执行files
任务。另一方面,如果您设置PRODUCTION
变量并运行相同的命令
$ PRODUCTION=true grunt watch
观看files
时它不会执行任何任务。