70

我正在尝试为 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'
4

11 回答 11

84

npm init

这就是你所需要的。它将为您即时创建 package.json 文件。

于 2015-05-28T22:19:47.333 回答
42

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 install或者npm update

现在它将在您创建的文件夹“项目名称”下创建node_modules目录。

于 2016-02-16T15:57:14.513 回答
23

如果您有package-lock.json文件,则可能必须删除该文件,然后运行npm i​​. 这对我有用

于 2018-10-18T22:59:39.913 回答
11

请参阅@Cesco 的回答:npm init这确实是您所需要的


我遇到了同样的问题 - 运行npm install somePackage没有生成node_modules目录。

package.json在根目录创建了一个文件,其中包含一个简单的 JSON obj:

{
    "name": "please-work"
}

在下一个npm install目录node_modules出现了。

于 2015-01-27T17:46:42.453 回答
4

一旦你运行npm init并开始安装 npm 包,它将node_moduals在第一次安装后创建文件夹

例如

npm init

(要求您设置 package.json 文件)

npm install <package name here> --save-dev

安装包并创建节点模块目录

于 2017-12-04T21:20:57.100 回答
0

我在尝试使用 cocoapods 将 React Native 集成到现有的 swift 项目中时遇到了这个问题。FB 文档(在撰写本文时)没有指定npm install react-native没有文件就无法工作package.json。根据 RN 文档将您设置entry point: (index.js)index.ios.js

于 2016-05-31T23:04:36.640 回答
0

我的问题是复制包含 .idea 目录的整个源文件,并且我的 webstorm 终端命令在源的原始目录上运行
我删除了 .idea 目录,它工作正常

于 2020-07-24T17:05:56.167 回答
0

对我来说,我必须进入 package.json 本身所在的目录,然后运行 ​​npm install 才能看到 node_modules 文件夹。显然,在没有 package.json 的目录中运行 npm install 不会出错或告诉您其他情况。

于 2021-09-13T12:31:55.653 回答
0

一些对我有用的尝试:

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

  2. 尝试升级 NPM:

npm install -g npm

或者,保持在特定的主要版本中:

npm install -g @latest-7

然后再次运行你的npm install

于 2021-12-17T21:09:53.043 回答
0

cd进入目录,然后运行

npm install node
于 2022-01-09T17:36:44.413 回答
-3

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

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

2)命令:npm init

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

4) 命令:npm installnpm update

于 2018-03-27T06:43:34.177 回答