繁体   English   中英

“npm install”和“npm install express”有什么区别?

[英]What are the differences between "npm install" and "npm install express"?

我开始学习 Node.js 和 Express。 我试图寻找这个问题的答案,但我找不到答案。

“npm install”和“npm install express”有什么区别?

我在创建 Express 应用程序时使用这些命令。 两者似乎对我来说都很好。 (当我执行“npm install”时 ---> 我也可以在我的 app.js 中使用 Express 模块)我也执行“npm install express --save”,并且我的应用程序也可以正常工作。

所有这些命令都会创建一个 node_module 文件夹。

我只想知道它们之间的区别,我应该使用哪一个来创建 Express 应用程序/项目?

非常感谢。

npm install安装package.jsondependencies项(和devDependencies )字段中列出的所有包。

A package.json holds many information about your Node.js project, such as its name, description, Git repository, and most importantly, the project's dependencies.

依赖项是您在使用npm install <package name>时安装的包/库,例如npm install express ,在您的情况下。 通过安装库,NPM 会自动将 package 名称插入package.json中的依赖项字段中,供您使用。

运行npm install不会安装任何新的依赖项。

node_modules是存储所有包代码的文件夹。 当您运行npm installnpm install <package name>时,它会从 NPM 注册表下载代码,然后将其存储在您的node_modules文件夹中。

(如果您使用的是 Git(例如 GitHub,GitLab),通常的做法是将node_modules添加到.gitignore中,因此不会在 Git 中跟踪node_modules

那么,为什么存在npm install命令呢?

John 开始了一个新的 Express 项目。 他运行npm install express将 Express 的代码下载到自己的计算机上,然后将他的 Express 代码写入index.js 他想与他的同事 James 分享他当前的代码,因此他将其上传并提交到 Git 存储库,并将node_modules添加到.gitignore以便不会在node_modules存储库中跟踪 node_modules。

James 克隆了 Git 存储库,因此他可以运行 John 代码的本地副本并对其进行处理。 当从 John 的 Git 存储库中克隆代码时,没有node_modules文件夹,这意味着 Express 在他的计算机上不可用。 但是,James 可以通过运行 1 个命令下载 John 安装的所有软件包: npm install 现在,James 拥有了运行 Express 应用程序所需的所有包。


一个非常小的package.json可能如下所示:

{
  "name": "johns-express-app",
  "dependencies": {
    "express": "^4.17.1",
    "dotenv": "^10.0.0",
  }
}

当您运行npm install时, NPM 会查看您的package.json依赖项字段。

“我需要下载dotenv版本的express ,以及10.0.0版本的dotenv。”

NPM 然后向 NPM 注册表发出请求以将依赖项下载到本地计算机。

如果您仍然对npm install的工作方式感到困惑,您可以访问NPM 的官方文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM