当本地安装包NPM不可用

问题描述 投票:1回答:4

我与新公共管理上的Web应用程序的工作,我发现一个问题,使用需要终端命令一些软件包运行诸如此类nodemonconcurrently

我通过安装了它

sudo npm install --save-dev nodemon

当我尝试通过使用它:

nodemon ./server.js

我得到一个错误

nodemon命令未找到

和相同的,当我同时使用

我也试图与

sudo npm install --save nodemon 

而这是行不通的。

它只有当我全球的装机它的工作

sudo npm install -g nodemon

为什么当本地安装,我不能用它?

注:我发现在node_modules/.bin可执行文件

但是这并不以下工作,以及

node_modules/.bin/nodemon ./server.js
node.js npm npm-install nodemon npm-scripts
4个回答
5
投票

全球包可以,因为它们默认保存在你的PATH目录中直接推出。如果保存了包locally你可以看到它在node_modules/.bin/如你所说。因此,有2种方式来实现你想要什么,如果你想,如果安装locally运行可执行程序包:

  • 您可以通过终端作为./node_modules/.bin/nodemon yourscript.js运行
  • 或者通过你的scripts文件NPM package.json,你这样做: { "scripts": { "nodemon": "nodemon yourscript.js" } } 并执行npm run nodemon

第2方法也适用于全球或本地安装的两个包。

我更喜欢本地安装的软件包,所以尤其是当我使用每个项目的不同版本的包我的其他应用程序将不会受到影响。

UPDATE

[email protected]起,它带有一个二进制称为npx。所以,你可以仅仅通过npx [package]运行在终端上特定的软件包,并执行访问本地或全局npm包。你的情况应该是这样的npx nodemon server.js


4
投票

因为它在你的node_modules / .bin文件的文件夹,不是你的PATH。

您可以使用./node_modules/.bin/nodemon$(npm bin)/nodemon调用nodemon。


1
投票

要运行任何本地安装的NPM模块(摩卡,Eslint,Nodemon等),你现在可以使用npx。尝试npx nodemon server.js

enter image description here

我还建议设置main您的package.json中指向你想运行(默认index.js)脚本,所以你可以只运行npx nodemonnodemon(如果全球的装机量),它会知道跑哪个脚本。


0
投票

这是因为本地node_modules文件夹不是在路径中。见链接复制问题的更多细节。

© www.soinside.com 2019 - 2024. All rights reserved.