[英]“Embed” a global variable in javascript file using grunt
我的项目中有一个.js文件,其代码如下:
var API_ENDPOINT = 'http://example.com:8000';
var api = new RemoteApi(API_ENDPOINT);
API_ENDPOINT
在开发/产品环境之间变化的地方
它不是js应用程序,主要是带有某些客户端功能的经典服务器端应用程序(Django)。
我开始使用Grunt来管理客户端依赖性,并认为,在Grunt配置中指定API_ENDPOINT
并以某种方式将其“嵌入” .js文件是个好主意。
但是我找不到用Grunt处理文件的方法。
生成的.js文件将在浏览器中运行,因此我需要将API_ENDPOINT
变量嵌入到API_ENDPOINT
文件中,或创建一个单独的.js文件,例如
var API_ENDPOINT = '...';
我将在script.js之前包含
(此外,我想将此变量“嵌入”到我的Django的settings.py
)
对于客户端js,我会将所有配置提取到config.json
文件中,并使用grunt-replace注入代码。
文件夹结构如下所示:
- Gruntfile
- config.json
- client/
- src/
- script.js
- dist/
config.json
{
"API_ENDPOINT": "http://example.com:8000"
}
src / script.js
var API_ENDPOINT = '@@API_ENDPOINT'; // everything starting with @@ will be replaced by grunt-replace by default
var api = new RemoteApi(API_ENDPOINT);
Gruntfile
grunt.initConfig({
replace: {
dist: {
options: {
patterns: [{
json: require('config.json')
}]
},
files: [
{expand: true, flatten: true, src: ['./client/src/*.js'], dest: './client/dist/'}
]
}
}
});
一些细节:
client/dist
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.