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

问题描述 投票:0回答:1

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

node.js directory node-modules
1个回答
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安装

如果要从命令行添加节点模块,可以使用

npm install package-name --save

© www.soinside.com 2019 - 2024. All rights reserved.