Javascript Angular2全局配置文件
我有一个Angular2项目,结构如下:Javascript Angular2全局配置文件,javascript,angular,Javascript,Angular,我有一个Angular2项目,结构如下: client/ // Angular2 client app/ app.component.ts ... main.ts ... server/ // API server.js config/ // config files webpack.config.js ... 我希望将Angular2应用程序的所有常量和参数(如API的url…)与所有其他配置文件一起放在conf
client/ // Angular2 client
app/
app.component.ts
...
main.ts
...
server/ // API
server.js
config/ // config files
webpack.config.js
...
我希望将Angular2应用程序的所有常量和参数(如API的url…)与所有其他配置文件一起放在config目录中。
我如何在Angular2中执行它?由于配置文件夹位于客户机文件夹之外,导入位于客户机文件夹之外的内容是否是一种良好的做法,其中包含许多“../../../”
我还想使用依赖注入,但有没有比这更重要的东西?
如何避免手动导入每个组件/模块中要使用的文件
Thx我使用的方法可能不是最好的方法,但是,我正在使用webpack将全局变量注入DefinePlugin插件: 我使用根目录上的.env文件来存储变量,我有一个.env.TST、.env.PRD并用部署脚本替换它 webpack.common.js
var preEnv = require('../.env');
var envVars = {};
for(var propertyName in preEnv) {
envVars[propertyName] = '"'+preEnv[propertyName]+'"';
}
declare var APIURL: string;
declare var PUBLIC_URL: string;
declare var ENV: string;
declare var BASE_PATH: string;
示例.env文件
module.exports = {
"APIURL": "https://localhost/MyAPI/",
"PUBLIC_URL": "https://localhost:3000/",
"BASE_PATH": "/"
"ENV": "dev"
}
您将使用apirl
作为全局变量
另外,我在打字中添加了一个文件,以防止出现警告:
打字/typings.d.ts
var preEnv = require('../.env');
var envVars = {};
for(var propertyName in preEnv) {
envVars[propertyName] = '"'+preEnv[propertyName]+'"';
}
declare var APIURL: string;
declare var PUBLIC_URL: string;
declare var ENV: string;
declare var BASE_PATH: string;
我希望它对某人有所帮助我使用的方法可能不是最好的方法,但是,我正在使用webpack为DefinePlugin插件注入全局变量: 我使用根目录上的.env文件来存储变量,我有一个.env.TST、.env.PRD并用部署脚本替换它 webpack.common.js
var preEnv = require('../.env');
var envVars = {};
for(var propertyName in preEnv) {
envVars[propertyName] = '"'+preEnv[propertyName]+'"';
}
declare var APIURL: string;
declare var PUBLIC_URL: string;
declare var ENV: string;
declare var BASE_PATH: string;
示例.env文件
module.exports = {
"APIURL": "https://localhost/MyAPI/",
"PUBLIC_URL": "https://localhost:3000/",
"BASE_PATH": "/"
"ENV": "dev"
}
您将使用apirl
作为全局变量
另外,我在打字中添加了一个文件,以防止出现警告:
打字/typings.d.ts
var preEnv = require('../.env');
var envVars = {};
for(var propertyName in preEnv) {
envVars[propertyName] = '"'+preEnv[propertyName]+'"';
}
declare var APIURL: string;
declare var PUBLIC_URL: string;
declare var ENV: string;
declare var BASE_PATH: string;
我希望这对某人有帮助
“脚本”:{
“build:dev”:“webpack--config/webpack.dev.js”,
“build:prod”:“webpack--config/webpack.prod.js”
}
newdefinePlugin({
“ENV”:JSON.stringify('Development'),
'URL':JSON.stringify('http://...')
})
。。。
这就是您的webpack.prod.js的外观
newdefinePlugin({
“ENV”:JSON.stringify('Prod'),
'URL':JSON.stringify('http://...')
})
。。。
“脚本”:{
“build:dev”:“webpack--config/webpack.dev.js”,
“build:prod”:“webpack--config/webpack.prod.js”
}
newdefinePlugin({
“ENV”:JSON.stringify('Development'),
'URL':JSON.stringify('http://...')
})
。。。
这就是您的webpack.prod.js的外观
newdefinePlugin({
“ENV”:JSON.stringify('Prod'),
'URL':JSON.stringify('http://...')
})
。。。