如何通过 npm cli 将 env 变量传递给 rollup.config.js?
How to pass env variable to rollup.config.js via npm cli?
我有一个脚本文件夹,其中许多单独的脚本位于单独的文件夹中,我想通过将脚本名称作为参数传递来单独构建每个脚本。
我已经在 package.json 中设置了汇总,例如 "watch": "rollup --watch --config rollup.config.js"
我想从 cli 传递参数,例如 npm run watch script_name=abc_script
它可以在 rollup.config.js 中通过 process.argv
访问
但是出现这个错误
rollup v1.23.1
bundles abc_script → dist/bundle.js
[!] Error: Could not resolve entry module
没有 npm cli 参数一切似乎都很好。
Rollup 有 --environment 变量,但使用起来有点长 npm run watch -- --environment script:script_name
有什么办法可以缩短这个吗?
提前致谢。
你可以像这样传递被 process.argv
捕获的参数
npm run watch -- some_arg
在您的程序中,您将在 process.argv 中得到一个数组,其中最后一个值将是传递给程序的值。
npm run watch -- --environment script=script_name
对我有用,所以我可以通过汇总配置
中的 process.env 访问 script_name
虽然以下答案没有直接解决 OP 的需求(通过命令行传递变量),但它确实解决了他们对简洁的渴望(“--环境变量,但使用起来有点长”)
在项目的根目录中创建一个 .env
文件,并在每一行上填充 VAR_NAME=value
NODE_ENV=development
SECRET_KEY=ahuehueheueheueheu
不要提交该文件。相反,将 .env
添加到您的 .gitignore
.
下一步安装dotenv
节点包
npm i -D dotenv
yarn add -D dotenv
最后把它放在你 rollup.config.js
的最顶部
import dotenv from 'dotenv';
dotenv.config();
或者,您可以将环境变量传递给命令 - 它比命令行参数更容易处理。
CLI 用法:
minify=on ./node_modules/.bin/rollup -c
package.json 脚本:
{
...
scripts: {
...
"build-production": "minify=on rollup -c"
}
}
rollup.config.js
const enableMinification = process.env.minify === 'on'
我有一个脚本文件夹,其中许多单独的脚本位于单独的文件夹中,我想通过将脚本名称作为参数传递来单独构建每个脚本。
我已经在 package.json 中设置了汇总,例如 "watch": "rollup --watch --config rollup.config.js"
我想从 cli 传递参数,例如 npm run watch script_name=abc_script
它可以在 rollup.config.js 中通过 process.argv
访问但是出现这个错误
rollup v1.23.1
bundles abc_script → dist/bundle.js
[!] Error: Could not resolve entry module
没有 npm cli 参数一切似乎都很好。
Rollup 有 --environment 变量,但使用起来有点长 npm run watch -- --environment script:script_name
有什么办法可以缩短这个吗?
提前致谢。
你可以像这样传递被 process.argv
捕获的参数
npm run watch -- some_arg
在您的程序中,您将在 process.argv 中得到一个数组,其中最后一个值将是传递给程序的值。
npm run watch -- --environment script=script_name
对我有用,所以我可以通过汇总配置
虽然以下答案没有直接解决 OP 的需求(通过命令行传递变量),但它确实解决了他们对简洁的渴望(“--环境变量,但使用起来有点长”)
在项目的根目录中创建一个 .env
文件,并在每一行上填充 VAR_NAME=value
NODE_ENV=development
SECRET_KEY=ahuehueheueheueheu
不要提交该文件。相反,将 .env
添加到您的 .gitignore
.
下一步安装dotenv
节点包
npm i -D dotenv
yarn add -D dotenv
最后把它放在你 rollup.config.js
import dotenv from 'dotenv';
dotenv.config();
或者,您可以将环境变量传递给命令 - 它比命令行参数更容易处理。
CLI 用法:
minify=on ./node_modules/.bin/rollup -c
package.json 脚本:
{
...
scripts: {
...
"build-production": "minify=on rollup -c"
}
}
rollup.config.js
const enableMinification = process.env.minify === 'on'