在 npm install 命令中评估 Bash 表达式
Evaluated Bash expression within npm install command
我想从一个简单的文本文件安装一个软件包列表(是的,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
npm install
接受由 space 分隔的包列表,但你传递给它的是一个用新行分隔的包列表,这就是你遇到问题的原因。
试试下面的方法
npm install -g $(cat builder-dev-packages.txt | tr "\n" " ")
我想从一个简单的文本文件安装一个软件包列表(是的,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
npm install
接受由 space 分隔的包列表,但你传递给它的是一个用新行分隔的包列表,这就是你遇到问题的原因。
试试下面的方法
npm install -g $(cat builder-dev-packages.txt | tr "\n" " ")