node安装配置环境,node需要配置环境变量吗
本文介绍了配置环境使节点项目支持可扩展性的方法,希望对你有所帮助!
node.js速度课程简介:进入学习
因为节点项目开发较少,不涉及环境变量的切换,但做前端项目开发时总会遇到。例如,Vue中的项目可以用。env.xxx.xxx,环境变量的配置需要从VUE_APP_开始。为什么?我们来探讨一下Vue项目的环境变量是如何加载和解析的,然后我们把它们移植到Node项目上。[推荐研究:《nodejs 教程》]
探索Vue中环境配置的加载:
我们先来看看Vue CLI对模式和环境变量的说明。我们看到有一段话:解析环境文件的规则详见dotenv。我们还使用dotenv-expand实现变量扩展(Vue CLI 3.5支持)。让我们先用Vue Cli创建一个Vue项目。
探索第一步:
@vue/cli-service包是通过执行package.json中的脚本来使用的
探索第二步:
@vue/cli-Service package确实安装了官网提示的两个依赖包,在bin目录下的vue-cli-service.js文件中找到了关键类Service。
探索第三步:
在服务中,我们发现加载环境配置的关键功能,其中两个路径涉及。环境模式和。env.mode.local,也就是我们的环境变量文件可以支持with也可以不支持。本地的。
两次思考负载的作用?
探索第三步:
指定的前缀是什么?我们在util目录中找到了答案:resolveClientEnv.js,最终由DefinePlugin插件加载到全局配置中。
思考BASE_URL的设置?
为携带webpack的Node项目中增加环境配置
准备webpack项目环境
准备webpack.config.js
新增env-helper.js,我们一起来实现一下:
必备依赖装一下
npm安装dotenv -保存
npm安装dotenv-扩展-保存解析环境变量文件
/**
*解析环境变量文件
* @param {*}模式
*/
const loadEnv=(mode)={
const basePath=path . resolve(_ _ dirname,` . env${mode?`.$ { mode } `: ` `} `);
const local path=` $ { basePath } . local `;
恒定载荷=(环境路径)={
尝试{
const env=dotenv . config({ path:env path,debug:process . env . debug });
doten expand(env);
} catch (err) {
if (err.toString()。indexOf(ENOENT) 0) {
console.error(错误);
}
}
};
load(local path);
load(base path);
};符合前缀的环境变量对象
/**
*获取符合前缀规则的环境变量对象。
*/
const prefixre=/^xxtx_app_/;
const resolveClientEnv=()={
const env={ };
Object.keys(process.env)。forEach((key)={
if(prefix re . test(key) key=== NODE _ ENV ){
env[key]=process . env[key];
}
});
返回env
};升级webpack.config.js来演示环境变量读取
增加演示插件和NODE_ENV配置
const web pack=require( web pack );
const { loadEnv,resolveClientEnv }=require(。/env-helper );
//解析环境配置文件
//通过cross-env在脚本中配置NODE_ENV=development。
loadEnv(process . ENV . node _ ENV);
//获取符合规则的环境配置对象
const env=resolveClientEnv();
const HelloWorldPlugin=require(。/hello-world’);
模块.导出={
模式:“开发”,
插件:[
新网络包。定义插件(env),
新hello world plugin({ options:true }),
],
};在我们的webpack插件中使用环境变量
HelloWorldPlugin类{
应用(编译器){
compiler . hooks . done . tap( hello world plugin ,()={
console.log(Hello World!);
console.log([ XXTX_APP_NAME ],process . env . XXTX _ APP _ NAME);
console . log([XXTX _ APP _ BASE _ URL],process . env . XXTX _ APP _ BASE _ URL);
});
}
}
module . exports=hello world plugin;查看输出结果
结尾说明:
我们可以通过改变挂载配置的方式将env-helper.js移植到其他节点项目。
此代码取决于CV解决方案。你学会了吗?
更多编程知识请访问:编程教学!也就是说,Node project如何配置环境以支持可伸缩性?更多详情请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。