gpt4 book ai didi

node.js - 在 npm 脚本中将 Node 环境变量设置为动态值

转载 作者:行者123 更新时间:2023-12-03 12:10:28 25 4
gpt4 key购买 nike

我想在 npm 脚本中动态设置一个环境变量。

我正在使用 cross-env因为我是在 Windows 上开发的,而服务器是基于 Unix 的。我想用当前日期( new Date() )初始化一个环境变量,以便我可以在我的 create-react-app 中访问和呈现它:

这有效(硬编码字符串):

"scripts": {
"start": "cross-env-shell REACT_APP_BUILD_DATE=\"currentDate\" react-scripts-ts start",
}

显然, currentDate不应是字符串,而是以下表达式的结果: new Date() .

我怎样才能做到这一点?换句话说:如何评估一些常规 JavaScript 并将其结果用作 npm 脚本?或者这是不可能的?

最佳答案

我正在使用简单的 Node 脚本将环境变量传递到被调用的脚本中。它使用 child_process.execSync。

// File name: ./build.js
/* eslint-env node */
const execSync = require('child_process').execSync;
const env = Object.create(process.env);

env.REACT_APP_BUILD_DATE= Date.now();

console.log('Used env variables: ' + JSON.stringify(env));
console.log('Run command: react-scripts start');
execSync('react-scripts-ts start', { env: env, stdio: 'inherit' });

更新 package.json 脚本中的启动命令。像这样:
"scripts": {"start": "node ./build.js"}

关于node.js - 在 npm 脚本中将 Node 环境变量设置为动态值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52174249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com