我的目标是仅在此 npm 包尚不可用时才安装它。即使我已经全局安装了模块,这也会继续执行。
if [ npm list -g widdershins &> /dev/null ] || [ ! -d node_modules ]; then
npm install widdershins --no-shrinkwrap
fi
Run Code Online (Sandbox Code Playgroud)
我如何调整它以检测何时全局安装?
OZZ*_*ZIE 15
如果你想要一个单衬:
当地的
npm list | grep widdershins || npm install widdershins --no-shrinkwrap
Run Code Online (Sandbox Code Playgroud)
全球的:
npm list -g | grep widdershins || npm install -g widdershins --no-shrinkwrap
Run Code Online (Sandbox Code Playgroud)
Ren*_*nop 11
package='widdershins'
if [ `npm list -g | grep -c $package` -eq 0 ]; then
npm install $package --no-shrinkwrap
fi
Run Code Online (Sandbox Code Playgroud)
替代方案包括目录检查:
package='widdershins'
if [ `npm list -g | grep -c $package` -eq 0 -o ! -d node_module ]; then
npm install $package --no-shrinkwrap
fi
Run Code Online (Sandbox Code Playgroud)
说明:
npm list -g列出所有已安装的软件包grep -c $package打印包含 $package 的行数(在我们的例子中替换为 'widdershins')-eq是一个等于检查,例如,$a -eq $b如果 $a 等于 $b,则返回 true,否则返回 false。-d检查给定参数是否是目录(如果是则返回 true)!是否定运算符,在我们的例子中是否定 -d 结果-o是逻辑或运算符把它们加起来:
这也可以帮助你。
| 归档时间: |
|
| 查看次数: |
4212 次 |
| 最近记录: |