首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改npm安装的外壳

如何更改npm安装的外壳
EN

Stack Overflow用户
提问于 2017-08-11 08:17:13
回答 2查看 2.2K关注 0票数 3

我试图在Ubuntu16.04中安装一个软件包。我收到以下错误消息:

代码语言:javascript
复制
npm install 

...

> padlock@2.0.0-beta.1 bower-install /home/kent/Documents/padlock
> pushd app && bower install && popd app

sh: 1: pushd: not found

我的研究

根据/bin/sh: pushd:未找到的说法,我的问题很明显是npm正在尝试使用sh而不是bash来执行pushd。

但是,我的默认shell已经是bash了。

代码语言:javascript
复制
$ env | grep SHELL
SHELL=/bin/bash
$ echo $SHELL
/bin/bash
$ echo $0
bash

我不确定我需要改变什么。我还尝试过在执行pushd应用程序之前添加SHELL=/bin/bash,但我在这方面也没有任何进展。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-11 08:51:37

npm-使用sh运行的脚本

脚本是通过将该行作为脚本参数传递给新的sh来运行的。

https://docs.npmjs.com/misc/scripts#exiting

如果您想要在脚本中使用bash,请生成脚本。

bash -c 'pushd app && bower install && popd'

更新:从2017年11月开始,您现在可以在.npmrc中设置script-shell以使用自定义的shell

票数 4
EN

Stack Overflow用户

发布于 2018-03-21 19:00:41

通过在我的项目目录中创建这个文件,我能够解决类似的情况:

代码语言:javascript
复制
$ cat .npmrc

script-shell=/bin/bash

FWIW,我偶然发现的问题是依赖于package.json文件的package.json文件中特定于bash的“花括号扩展”命令。这个格式错误的命令可以在MacOS中工作,但不适用于Linux。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45630223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档