Javascript 如何在本地应用程序目录中安装nodejs模块?

Javascript 如何在本地应用程序目录中安装nodejs模块?,javascript,node.js,express,npm,Javascript,Node.js,Express,Npm,我正在frontendmasters.com上学习node.js课程。在这门课程中,讲师创建了一个名为“express”的应用程序目录,将CD放入其中,然后运行命令“npm install express”,这门课程看起来至少有一到两年的历史。据他说,因为我没有指定'-g'选项(这会导致npm全局安装),所以应该在express文件夹中创建一个node_modules目录。当他在笔记本电脑上运行命令时,事情就是这样。他说,这样做是为了,例如,如果你有两个不同的应用程序需要不同版本的express

我正在
frontendmasters.com
上学习node.js课程。在这门课程中,讲师创建了一个名为“express”的应用程序目录,将CD放入其中,然后运行命令“npm install express”,这门课程看起来至少有一到两年的历史。据他说,因为我没有指定'-g'选项(这会导致npm全局安装),所以应该在express文件夹中创建一个node_modules目录。当他在笔记本电脑上运行命令时,事情就是这样。他说,这样做是为了,例如,如果你有两个不同的应用程序需要不同版本的express,你可以在每个应用程序的目录中运行不同的版本。这很有道理

但是,当我运行“npm install express”命令时,我发现npm创建了$HOME/node\u modules/express目录,而不是在我的express项目目录下创建该node\u modules目录。当我在与basic相同的目录级别创建第二个应用程序basic2时,我发现我不需要重新运行“npm install express”命令,因为express仍然可以通过$HOME/node_modules目录访问。这意味着,basic和basic2两个应用程序都将使用相同版本的express,这与讲师所说的相矛盾


因此,我的问题是,如何使用npm安装express(或任何其他模块),以便在本地应用程序目录(即,基于每个应用程序)中而不是在我的$HOME目录中创建node_modules目录?自创建此视频以来,npm似乎发生了一些变化。

为应用程序创建一个新文件夹

mkdir my-app
cd my-app
然后使用
npminit
创建一个nodejs应用程序,这将询问您一些信息,比如应用程序名称版本等。。。此命令将生成package.json


之后,您可以运行命令
npm i--save express
,该命令将express添加到应用程序的package.json

主目录中是否有
package.json
文件?可能npm认为它是您项目的根。您需要运行
npm init
来创建项目的基础。请修复:
npm i--save express
原因是您通过调用
npm init
来创建
package.json
,并且您必须保存您使用的依赖项。非常感谢。在
npm安装之前,我需要运行
npm init
。我不知道为什么教练没有提到这一点。