npm install不会创建node_modules目录

Con*_*ech 41 node.js npm node-modules

我正在尝试为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'
Run Code Online (Sandbox Code Playgroud)

CES*_*SCO 48

npm init

这就是你所需要的.它会为您动态创建package.json文件.

  • 在项目的同一文件夹中(您要在其中创建 node_modules 文件夹)。 (2认同)

Piy*_*gar 25

NPM在'/ home/jasonshark /'路径创建了一个node_modules目录.

从您的问题看起来您希望在当前目录中创建node_modules.

为了那个原因,

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

    { "name": "project-name", "version": "project-version", "dependencies": { "mongodb": "*" } }

  5. 现在做:npm installORnpm update

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

  • 我会在此处指定使这个特定的 `package.json` 生成 `node_modules` 目录的原因是 `dependecies` 属性的存在,其中包含一些内容。 (2认同)

小智 22

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


che*_*pus 8

请参阅@ Cesco的回答:npm init真的是你所需要的


我遇到了同样的问题 - 跑步npm install somePackage并没有产生一个node_modules目录.

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

{
    "name": "please-work"
}
Run Code Online (Sandbox Code Playgroud)

在接下来npm installnode_modules目录中出现.

  • 在任何人开始发火之前,这是一个“特色”,而不是一个错误。 (2认同)
  • 实际上,如果我正在安装没有被任何东西使用的顶级包,我不需要 *想要* package.json 文件。在这种情况下,看来我在 npm install 之前需要做的就是“mkdir node_modules” (2认同)