将 bash 个变量传递给 rollup.js

Passing bash variables to rollup.js

我正在尝试将变量传递给 bash 中的 rollup.js。 我不知道这是 bash 的问题,还是 rollup.js 的问题,因为我在 bash 方面经验不足。但也许有人可以帮助我……

这是我的终端输入:

MY_INPUT="/path to my/input.js"
MY_OUTPUT="/path to my/output.js"
rollup --input $MY_INPUT --output $MY_OUTPUT

汇总抛出错误:

rollup can only bundle one file at a time

我查到问题出在路径中的空格处。

但是,这两种方法都有效:

rollup --input "/path to my/input.js" --output "/path to my/output.js"
rollup --input /path\ to\ my/input.js --output /path\ to\ my/output.js

只有在我使用变量时才会出现这个问题。 我也尝试转义变量而不是将其放在括号中,但这也不起作用。

有什么方法可以让变量表现得像我想要的那样,这是一个问题,rollup.js 必须处理,或者根本不可能使用其中包含空格的路径作为变量的参数?

您需要在将变量传递给 rollup 时引用变量:

rollup --input "$MY_INPUT" --ouput "$MY_OUTPUT"

这是因为这些变量包含空格,shell 将其解释为多个参数。通过使用双引号引用,值将被解释为单个字符串。

请注意,如果您将 Bash 脚本复制粘贴到 http://www.shellcheck.net/#,它可能会指出这样的问题。