"Embed" javascript 文件中使用 grunt 的全局变量
"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
在 dev/prod 个环境中变化
它不是 js 应用程序,主要是带有一些客户端增强功能的经典服务器端应用程序 (Django)。
我开始使用 G运行t 来管理客户端依赖项,我想,在 G运行t 配置中指定 API_ENDPOINT
是个好主意 "embed" 将其放入 .js 文件中。
但我找不到用 G运行t 处理文件的方法。
生成的 .js 文件在浏览器环境中将是 运行,所以我需要将我的 API_ENDPOINT
变量嵌入到 source.js 文件中或创建一个单独的 .js 文件,如 [=18] =]
var API_ENDPOINT = '...';
我将在 script.js
之前包含
(另外,我想 "embed" 这个变量到我的 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
- 需要 json 文件会自动解析它
- 当然你可以用yaml/cson来完成(见grunt-replace section)
- 不知道如何解析 python 中的 json-config,但应该不会太难...
我的项目中有一个 .js 文件,代码如下:
var API_ENDPOINT = 'http://example.com:8000';
var api = new RemoteApi(API_ENDPOINT);
其中 API_ENDPOINT
在 dev/prod 个环境中变化
它不是 js 应用程序,主要是带有一些客户端增强功能的经典服务器端应用程序 (Django)。
我开始使用 G运行t 来管理客户端依赖项,我想,在 G运行t 配置中指定 API_ENDPOINT
是个好主意 "embed" 将其放入 .js 文件中。
但我找不到用 G运行t 处理文件的方法。
生成的 .js 文件在浏览器环境中将是 运行,所以我需要将我的 API_ENDPOINT
变量嵌入到 source.js 文件中或创建一个单独的 .js 文件,如 [=18] =]
var API_ENDPOINT = '...';
我将在 script.js
之前包含(另外,我想 "embed" 这个变量到我的 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
- 需要 json 文件会自动解析它
- 当然你可以用yaml/cson来完成(见grunt-replace section)
- 不知道如何解析 python 中的 json-config,但应该不会太难...