【问题标题】:Evaluated Bash expression within npm install command在 npm install 命令中评估 Bash 表达式
【发布时间】:2021-02-25 23:50:00
【问题描述】:

我想从一个简单的文本文件安装一个包列表(是的,package.json 就是为此而设计的)

我的第一个方法是这样的:

npm i $(cat builder-dev-packages.txt) -g 类似这样:docker rm $(docker ps -a -f status=exited -q)

但我仍然将该命令评估为无效的标签名称。

npm ERR! code EINVALIDTAGNAME ": Tags may not have any characters that encodeURIComponent encodes.

我是否需要使用 while 循环来运行我的 npm 命令,而不是评估 cat 语句的输出?该脚本仍然为 txt 文件中的每一行提供相同的错误。

#!/bin/bash
filename='./builder/builder-dev-packages.txt'
echo Start
while read p; do 
    npm i $p --dry-run
done < $filename

这是我的 .txt 文件:

atob
colors
comment-parser
del
gulp
gulp-autoprefixer
gulp-clean-css
gulp-concat
gulp-connect
gulp-filter
gulp-htmlmin
gulp-if
gulp-nodemon
gulp-rename
gulp-replace
gulp-rewrite-css
gulp-rtlcss
gulp-sass
gulp-sourcemaps
gulp-uglify-es
lazypipe
merge-stream
node-sass
pretty
yargs

【问题讨论】:

  • 分享你的builder-dev-packages.txt
  • 抱歉,我已将 .txt 添加到主帖中。
  • 总是引用参数:"$p", "$filename"

标签: bash loops npm expression


【解决方案1】:

npm install 接受以空格分隔的包列表,但您传递给它的是一个以换行符分隔的包列表,这就是您遇到问题的原因。

试试下面的

npm install -g $(cat builder-dev-packages.txt | tr "\n" " ")

【讨论】:

    猜你喜欢
    • 2012-02-25
    • 2012-07-13
    • 1970-01-01
    • 2013-10-13
    • 2021-04-11
    • 1970-01-01
    • 1970-01-01
    • 2019-11-12
    • 2015-01-15
    相关资源
    最近更新 更多