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 installnpm update

现在它将在您创建的文件夹 'project-name' 下创建 node_modules 目录。

【讨论】:

安装目录在构建过程中切换并且缺少npm init,因此它选择当前目录进行安装。更好地解释然后接受答案。 我要在这里说明,使这个特定的package.json 生成node_modules 目录的原因是dependecies 属性的存在,其中包含一些内容。【参考方案6】:

对于 node_modules,您必须按照以下步骤操作

1) 在命令提示符下 -> 转到您的项目目录。

2) 命令:npm init

3) 它要求你设置你的 package.json 文件

4) 命令:npm installnpm 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 目录

使用 npm install 命令创建 .bat 文件

npm install 不会安装 devDependencies

关于 npm install 命令