Cap*_*ero 7 javascript node.js rollupjs
我有一个脚本文件夹,其中多个单独的脚本位于单独的文件夹中,我想通过将脚本名称作为参数传递来分别构建每个脚本。
我已经在 package.json 中设置了汇总 "watch": "rollup --watch --config rollup.config.js"
我想从 cli 传递参数,例如 npm run watch script_name=abc_script
它可以通过 process.argv 在 rollup.config.js 中访问
但是得到这个错误
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
有没有办法缩短这个?
提前致谢。
或者,您可以将环境变量传递给命令 - 它比命令行参数更容易处理。
命令行用法:
minify=on ./node_modules/.bin/rollup -c
package.json脚本:
{
...
scripts: {
...
"build-production": "minify=on rollup -c"
}
}
Run Code Online (Sandbox Code Playgroud)
rollup.config.js
const enableMinification = process.env.minify === 'on'
Run Code Online (Sandbox Code Playgroud)
小智 7
您可以传递将被捕获的参数,process.argv如下所示
npm run watch -- some_arg
Run Code Online (Sandbox Code Playgroud)
在您的程序中,您将在 process.argv 中获得一个数组,其中最后一个值将是传递给程序的值。
虽然以下答案没有直接解决 OP 的需要(通过命令行传递变量),但它确实解决了他们对简洁的要求(“--环境变量,但使用时间有点长”)
.env在项目的根目录中创建一个文件并VAR_NAME=value在每一行填充
NODE_ENV=development
SECRET_KEY=ahuehueheueheueheu
Run Code Online (Sandbox Code Playgroud)
不要提交那个文件。相反,添加.env到您的.gitignore.
接下来安装dotenv节点包
npm i -D dotenv
Run Code Online (Sandbox Code Playgroud)
yarn add -D dotenv
Run Code Online (Sandbox Code Playgroud)
最后把它放在你的最上面 rollup.config.js
NODE_ENV=development
SECRET_KEY=ahuehueheueheueheu
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5750 次 |
| 最近记录: |