[英]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.json
的dependencies
项(和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 install
或npm 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.