即使我已经将nodemon安装为全局依赖项,我是否应该将其作为开发依赖项添加到我的项目中?

13

我正在学习基础的Node.js,发现我可以在项目中不必安装全局安装的包就可以使用它。

目前我的依赖关系如下:

"dependencies": {
    "cookie-parser": "~1.4.4",
    "debug": "~2.6.9",
    "express": "~4.16.1",
    "http-errors": "~1.6.3",
    "morgan": "~1.9.1",
    "pug": "2.0.0-beta11"
  },
  "devDependencies": {
    "jasmine": "^3.6.1"
  }

我一直在使用nodemon,但刚刚意识到它没有列为dev依赖项。作为一个好的实践,我应该使用npm i --save-dev nodemon 进行添加吗?

如果这是一个协作项目,我想必须将其声明为依赖项,但我不确定。


2
我认为这并非必要。如果您正在与其他人合作,那么如何运行项目就取决于他们。 - Daniel_Knights
哦,你说得对。但如果它是像express这样的项目依赖关系呢?如果全局安装了express,我能在我的项目中使用它而不将其添加到我的依赖项中吗? - Chefcito
2个回答

9
如果你将 nodemon 安装为开发依赖项,那么它不会被本地安装,也不会在系统路径中可用。但如果你全局安装 nodemon,则它将在全局系统路径中安装。
要全局安装 nodemon,请执行以下操作:
npm install -g nodemon

安装nodemon作为开发依赖项:

npm install --save-dev nodemon

感谢!


8

我认为你应该将它添加到依赖项中,以防你通过某个package.json定义的脚本来运行应用程序时使用它:

"scripts": {
"develop": "nodemon src/server"

因此,它适用于运行npm run develop的任何开发人员。


如果它是一个项目的依赖项,比如express呢?如果全局安装了express,我能在我的项目中使用它而不将其添加到我的依赖项中吗?如果可以的话,在协作项目中会有问题吧? - Chefcito
你应该将它添加到 package.json 中,因为它是一个依赖项,将始终被你的应用程序使用。我的意思是,任何用户都需要全局或本地安装 express,但运行代码是必要的。 - Lamelas84
明白了。谢谢。 :D - Chefcito

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接