[英]All the npm package not installed globally can't be executed directly
我无法直接执行未全局安装的npm软件包。 但是我可以通过npm scripts
执行它。 如何解决?
例如:我在项目下安装了gulp
:
npm install gulp --save-dev
然后我尝试通过执行
gulp
zsh: command not found: gulp
但是如果我向package.json
添加一个npm script
:
"scripts": {
"test": "mocha --require intelli-espower-loader && gulp test",
"start": "gulp"
},
然后跑
npm start
它可以毫无问题地执行。
PS与mocha
软件包存在相同的问题,我无法直接执行mocha
,但可以毫无问题地执行npm test
。
我该如何解决该问题?
我并不是说要全局执行它们,而只是想在项目下执行它们。
我不知道哪里出了问题,但是它们不久前就可以执行,只是最近不起作用!
除了@Ion的答案:您可能需要将路径添加到环境变量。 在Windows OS中,它将为%AppData%\\npm
。 对于本地安装的软件包,您应该能够像
.\\node_modules\\.bin\\gulp
如果要全局执行它们,请使用-g
标志进行安装
npm install gulp -g
要直接运行,您还可以执行./node_modules/.bin/gulp
这是因为未全局安装的软件包不会在根node_modules文件夹中创建引用。 如果要专门使用本地安装的版本在终端上全局运行,请转到环境变量并将路径设置为./node_modules/gulp/bin/gulp.js
或将npm配置为使用上述位置作为gulp并执行node_modules/.bin/gulp
您有两种选择:
全局安装可执行模块:
npm install -g gulp
如果这是您经常使用的工具(用于许多不同的项目),则很好。 对于gulp
具体而言,全球的装机量一饮而尽还会检查,看是否项目都有自己的gulp
安装(以node_modules),然后运行该版本的gulp
。 这意味着每个项目都可以有自己的gulp
版本。 但并非所有工具都具有此功能。
使用npx
:
npx gulp
新版本的npm
附带了一个命令调用npx
将通过项目的node_modules目录搜索找到一个模块来执行。 这意味着您无需全局安装特定于项目的工具。 除了避免全局安装命令(可能是安全问题,也可能不是安全问题)以外,它还允许您安装项目的特定版本的工具。
如果您的npm安装没有npx,则可以从npm本身安装它:
npm install -g npx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.