为什么NodeJS要求我使用下载模块的完整目录?

时间:2017-12-22 00:45:57

标签: node.js directory node-modules

例如Express之类的东西,默认情况下没有Node。我必须使用var express = require('C:/Users/User/node_modules/express');而不是var express = require('express');。我注意到默认情况下出现的模块,例如http,与我安装的模块位于同一位置。那么我需要做什么才能不必编写整个目录。如果它有所不同,我将所有Node项目保留在C:/Node/中,而不是默认项目。

1 个答案:

答案 0 :(得分:2)

这种情况正在发生,因为您可能没有在本地安装节点模块。为此你需要一个package.json文件,你可以通过运行

获得
  

npm init

这将询问您有关项目的一些问题,并将在本地设置节点。将创建一个看起来像这样的package.json文件(没有依赖项)。

{
  "name": "express-project",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "Link to your repository"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "bcrypt": "^1.0.2",
    "body-parser": "^1.17.2",
    "chalk": "^2.0.1",
    "compression": "^1.7.0",
    "cookie-parser": "^1.4.3",
    "cors": "^2.8.4",
    "express": "^4.15.3",
    "glob": "^7.1.2",
    "moment": "^2.18.1",
    "mongoose": "^4.11.3",
    "morgan": "^1.8.2",
    "passport": "^0.3.2",
    "path": "^0.12.7",
    "yargs": "^8.0.2"
  }
}

然后,您可以通过将它们放在依赖项中并运行

来添加所需的节点模块
  

npm install

如果要从commond line添加节点模块,可以使用

  

npm install package-name --save