npm install 不会创建 node_modules 目录
Posted
技术标签:
【中文标题】npm install 不会创建 node_modules 目录【英文标题】:npm install doesn't create node_modules directory 【发布时间】:2014-02-10 14:48:58 【问题描述】:我正在尝试为 mongodb uni 课程做作业。他们给了我们一些文件,说明是:
运行npm install mongodb
然后node app.js
由于某种原因,npm install 没有创建 node_modules 目录,但我没有看到任何构建错误:
mongo-uni/hw1-2$ npm install mongodb
npm WARN package.json path@0.4.9 path is also the name of a node core module.
npm http GET https://registry.npmjs.org/mongodb
npm http 304 https://registry.npmjs.org/mongodb
npm http GET https://registry.npmjs.org/bson/0.2.5
npm http GET https://registry.npmjs.org/kerberos/0.0.3
npm http 304 https://registry.npmjs.org/kerberos/0.0.3
npm http 304 https://registry.npmjs.org/bson/0.2.5
> kerberos@0.0.3 install /home/jasonshark/node_modules/mongodb/node_modules/kerberos
> (node-gyp rebuild 2> builderror.log) || (exit 0)
make: Entering directory `/home/jasonshark/node_modules/mongodb/node_modules/kerberos/build'
SOLINK_MODULE(target) Release/obj.target/kerberos.node
SOLINK_MODULE(target) Release/obj.target/kerberos.node: Finished
COPY Release/kerberos.node
make: Leaving directory `/home/jasonshark/node_modules/mongodb/node_modules/kerberos/build'
> bson@0.2.5 install /home/jasonshark/node_modules/mongodb/node_modules/bson
> (node-gyp rebuild 2> builderror.log) || (exit 0)
make: Entering directory `/home/jasonshark/node_modules/mongodb/node_modules/bson/build'
CXX(target) Release/obj.target/bson/ext/bson.o
make: Leaving directory `/home/jasonshark/node_modules/mongodb/node_modules/bson/build'
mongodb@1.3.23 ../../../node_modules/mongodb
├── kerberos@0.0.3
└── bson@0.2.5
mongo-uni/hw1-2$ node app.js
Failed to load c++ bson extension, using pure JS version
'No document found'
【问题讨论】:
从npm
日志看来,这是使用目录/home/jasonshark/node_modules/
。您可以尝试ls /home/jasonshark/node_modules/
来查看该路径是否存在吗?您看到的有关“bson 扩展”的消息是警告您正在使用性能较差的 JS 模块(而不是 C++ 模块)。 “未找到文档”消息来自您的 app.js
,它可能实际上正在运行但尚未找到任何文档。
我也在代理服务器后面访问互联网,这可能会影响下载..
我认为下载模块不是问题:可能没有安装 C++ bson 模块,因为您的路径中没有正确设置编译器,但纯 JS 模块应该没问题对于开发。我会查看 app.js 代码以了解它的预期。我怀疑该应用程序运行良好:)
你发现了吗?我有同样的问题。我已经尝试了以下每个答案,但没有得到节点模块文件夹。
【参考方案1】:
cd
进入目录然后运行
npm install node
【讨论】:
【参考方案2】:尝试一些对我有用的方法:
尝试从 IDE 外部运行 NPM 安装,仅在 bash / PowerShell / cmd 提示符下运行。它会以同样的方式工作,并且可能会成功完成。
尝试升级 NPM:
npm install -g npm
或者,保持在特定的主要版本中:
npm install -g @latest-7
然后再次运行您的npm install
。
【讨论】:
【参考方案3】:对我来说,我必须进入 package.json 所在的目录,然后运行 npm install 才能看到 node_modules 文件夹。显然,在没有 package.json 的目录中运行 npm install 不会出错或告诉你其他情况。
【讨论】:
【参考方案4】:我的问题是复制包含 .idea 目录的整个源文件,并且我的 webstorm 终端命令在源的原始目录上运行 我删除了 .idea 目录,它运行良好
【讨论】:
【参考方案5】:NPM 在 '/home/jasonshark/' 路径下创建了一个 node_modules 目录。
从您的问题看来,您希望在当前目录中创建 node_modules。
为此,
-
创建项目目录:
mkdir <project-name>
切换到:cd <project-name>
执行:npm init
这将在当前路径创建 package.json 文件
打开 package.json 并填写如下内容
"name": "project-name",
"version": "project-version",
"dependencies":
"mongodb": "*"
现在做:npm install
或 npm update
现在它将在您创建的文件夹 'project-name' 下创建 node_modules 目录。
【讨论】:
安装目录在构建过程中切换并且缺少npm init
,因此它选择当前目录进行安装。更好地解释然后接受答案。
我要在这里说明,使这个特定的package.json
生成node_modules
目录的原因是dependecies
属性的存在,其中包含一些内容。【参考方案6】:
对于 node_modules,您必须按照以下步骤操作
1) 在命令提示符下 -> 转到您的项目目录。
2) 命令:npm init
3) 它要求你设置你的 package.json 文件
4) 命令:npm install
或 npm update
【讨论】:
永远不要将任何语言包管理器的安装命令作为 sudo 运行。永远不要更改目录权限来尝试修复它【参考方案7】:如果您有一个package-lock.json
文件,您可能必须删除该文件然后运行npm i
。这对我有用
【讨论】:
【参考方案8】:一旦您运行 npm init
并开始安装 npm 包,它将在首次安装后创建 node_moduals
文件夹
例如
npm init
(要求您设置 package.json 文件)
npm install <package name here> --save-dev
安装包并创建节点模块目录
【讨论】:
【参考方案9】:我在尝试使用 cocoapods 将 React Native 集成到现有的 swift 项目中时遇到了这个问题。 FB 文档(在撰写本文时)没有指定 npm install react-native
在没有 package.json
文件的情况下将无法工作。根据 RN 文档,将您的 entry point: (index.js)
设置为 index.ios.js
【讨论】:
【参考方案10】:查看@Cesco 的回答:npm init
确实是您所需要的
我遇到了同样的问题 - 运行 npm install somePackage
没有生成 node_modules
目录。
我在根目录下创建了一个package.json
文件,其中包含一个简单的 JSON obj:
"name": "please-work"
在下一个npm install
上,出现了node_modules
目录。
【讨论】:
在任何人开始燃烧之前,这是一个功能,而不是一个错误。 实际上,如果我要安装没有被任何东西使用的***包,我不想要 package.json 文件。在这种情况下,看来我在 npm install 之前需要做的就是“mkdir node_modules”【参考方案11】:npm init
这就是你所需要的。它将为您即时创建 package.json 文件。
【讨论】:
在您项目的同一个文件夹中(您要在其中创建 node_modules 文件夹)。 谢谢,如果 package.json 不存在,npm install
会安装到哪里?我想知道 npm 是否应该显示一条消息说没有找到 package.json 文件并且应该运行npm init
。
供将来参考,在 Visual Studio 中执行此操作时:我花了比我想承认的时间更长的时间,因为我没有在解决方案资源管理器中看到 node_modules 文件夹,因为它不包含在项目自动。但文件夹确实在那里!以上是关于npm install 不会创建 node_modules 目录的主要内容,如果未能解决你的问题,请参考以下文章
安装“npm install -g ionic cordova”时出错
如何解决 npm install 在非 MAC 操作系统上抛出 fsevents 警告?
npm install 不会创建 node_modules 目录