dmz*_*rsk 1 javascript gruntjs
我的项目中有一个.js文件,代码如下:
var API_ENDPOINT = 'http://example.com:8000';
var api = new RemoteApi(API_ENDPOINT);
Run Code Online (Sandbox Code Playgroud)
其中API_ENDPOINT开发/ PROD环境之间的变化
它不是一个js应用程序,主要是一个经典的服务器端应用程序(Django),它有一些客户端的内容.
我开始使用Grunt来管理客户端依赖关系并认为,API_ENDPOINT在Grunt配置中指定并以某种方式将其"嵌入"到.js文件中是个好主意.
但是我找不到用Grunt破坏文件的方法.
生成的.js文件将在浏览器envorenment中运行,因此我需要API_ENDPOINT在source.js文件中嵌入我的变量或创建一个单独的.js文件,如
var API_ENDPOINT = '...';
Run Code Online (Sandbox Code Playgroud)
我将在script.js之前包含哪些内容
(另外,我想把这个变量"嵌入"我的django中settings.py)
对于客户端js,我会将所有配置提取到一个config.json文件中,并使用grunt-replace注入代码.
文件夹结构可能如下所示:
- Gruntfile
- config.json
- client/
- src/
- script.js
- dist/
Run Code Online (Sandbox Code Playgroud)
config.json
{
"API_ENDPOINT": "http://example.com:8000"
}
Run Code Online (Sandbox Code Playgroud)
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);
Run Code Online (Sandbox Code Playgroud)
Gruntfile
grunt.initConfig({
replace: {
dist: {
options: {
patterns: [{
json: require('config.json')
}]
},
files: [
{expand: true, flatten: true, src: ['./client/src/*.js'], dest: './client/dist/'}
]
}
}
});
Run Code Online (Sandbox Code Playgroud)
一些细节:
client/dist| 归档时间: |
|
| 查看次数: |
923 次 |
| 最近记录: |