【问题标题】:npm install doesn't create node_modules directorynpm install 不会创建 node_modules 目录
【发布时间】: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 代码以了解它的预期。我怀疑该应用程序运行良好:)
  • 你发现了吗?我有同样的问题。我已经尝试了以下每个答案,但没有得到节点模块文件夹。

标签: node.js npm node-modules


【解决方案1】:

cd进入目录然后运行

npm install node

【讨论】:

    【解决方案2】:

    尝试一些对我有用的方法:

    1. 尝试从 IDE 外部运行 NPM 安装,仅在 bash / PowerShell / cmd 提示符下运行。它会以同样的方式工作,并且可能会成功完成。

    2. 尝试升级 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

          为此,

          1. 创建项目目录:mkdir <project-name>
          2. 切换到:cd <project-name>
          3. 执行:npm init 这将在当前路径创建 package.json 文件
          4. 打开 package.json 并填写如下内容

            {
                "name": "project-name",
                "version": "project-version",
                "dependencies": {
                    "mongodb": "*"
                }
            }
            
          5. 现在做: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 文件夹,因为它不包含在项目自动。但文件夹确实在那里!
                猜你喜欢
                • 1970-01-01
                • 2022-01-15
                • 2016-10-29
                • 2020-10-22
                • 1970-01-01
                • 2015-11-16
                • 2019-01-13
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多