在安装npm模块之前是否需要有一个package.json文件?

时间:2015-11-29 11:17:38

标签: node.js module npm package.json

我基本上有一个完全空的文件夹,其中有一个文件test.js。我想安装几个模块,但是当我尝试执行npm install express之类的操作时,我收到一条错误消息,指出我没有package.json个文件。

$ npm install express

> node-icu-charset-detector@0.1.3 install /Users/me/node_modules/node-icu-charset-detector
> node-gyp rebuild

  CXX(target) Release/obj.target/node-icu-charset-detector/node-icu-charset-detector.o
../node-icu-charset-detector.cpp:7:10: fatal error:
      'unicode/ucsdet.h' file not found
#include <unicode/ucsdet.h>
         ^
1 error generated.
make: *** [Release/obj.target/node-icu-charset-detector/node-icu-charset-detector.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:270:23)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Darwin 15.0.0
gyp ERR! command "/usr/local/Cellar/node/5.1.0/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/me/node_modules/node-icu-charset-detector
gyp ERR! node -v v5.1.0
gyp ERR! node-gyp -v v3.0.3
gyp ERR! not ok
npm WARN install:node-icu-charset-detector@0.1.3 node-icu-charset-detector@0.1.3 install: `node-gyp rebuild`
npm WARN install:node-icu-charset-detector@0.1.3 Exit status 1
/Users/me
├── express@4.13.3
├── UNMET PEER DEPENDENCY react@>=0.14.0 <0.15.0
└── UNMET PEER DEPENDENCY react-dom@>=0.14.0 <0.15.0

npm WARN ENOENT ENOENT: no such file or directory, open '/Users/me/package.json'
npm WARN EPEERINVALID mongoskin@1.4.13 requires a peer of mongodb@~1.4 but none was installed.
npm WARN EPEERINVALID react-router-component@0.28.0 requires a peer of react@>=0.14.0 <0.15.0 but none was installed.
npm WARN EPEERINVALID react-router-component@0.28.0 requires a peer of react-dom@>=0.14.0 <0.15.0 but none was installed.
npm WARN EPEERINVALID react-tap-event-plugin@0.2.1 requires a peer of react@^0.14.0 but none was installed.
npm WARN EPACKAGEJSON me No description
npm WARN EPACKAGEJSON me No repository field.
npm WARN EPACKAGEJSON me No README data
npm WARN EPACKAGEJSON me No license field.

3 个答案:

答案 0 :(得分:1)

npm install基本上有三种主要形式:

  1. npm install:阅读package.json,并将其中的所有内容安装到此目录中。
  2. npm install express:将express安装到此目录中。
  3. npm install --save express:将express安装到此目录中,并将其保存到package.json。
  4. 第二种形式不需要package.json存在于此处:

    $ npm install express
    express@4.13.3 node_modules/express
    ├── escape-html@1.0.2
    ├── array-flatten@1.1.1
    ...
    

    如果收到错误消息,则表示其他错误。

答案 1 :(得分:0)

不需要包含package.json。

  1. 您可以在其中包含多个不同的模块名称 你想在npm install命中安装。

  2. 您可以更好地控制模块的版本

  3. 您可以分离依赖项和开发依赖项等模块

  4. 为你'npm install express'将为你安装快递模块。

答案 2 :(得分:0)

抬头:如果您使用范围包Scoped Packages,我恐怕是。