如何在js文件中获取文件夹“node_modules”的路径?
的Node.js - 8.2.1如何在js文件中获取文件夹“node_modules”的路径?
我我index.js我硬编码路径node_modules:
'使用严格的';
var NPM_NODE_MODULES_BASE_DIR = 'd:\\Programs\\nodejs\\node_modules\\npm\\node_modules\\'
var express = require(NPM_NODE_MODULES_BASE_DIR + '\express'),
bodyParser = require(NPM_NODE_MODULES_BASE_DIR +'body-parser');
var app = express();
app.use(bodyParser.urlencoded({extended: true}));
但它不是很好,因为代码是不便携的。我如何获得Node.js的文件夹node_modules的路径?
不用全局安装npm模块,只要将它们安装到src文件夹中,无论何时在src文件夹中,并执行npm安装,它都应该安装在src文件的本地npm模块文件夹中,可以使用--save将其添加到您的依赖项,以便您可以在初始化节点项目时获取它
这不好。如果我在每个项目中都有10个项目,我就拥有“Express”,“body-parser”等相同的模块。它是重复的 – Alex
以下是nodejs当前主分支源文档[doc/api/modules.md]的摘录...
... require.resolve()
所做的伪代码中的高级算法:
需要(X)从模块在路径ý
-
如果X是一个核心模块, 一个。返回核心模块
b。 STOP
如果X以'/' 开始a。集合Y是文件系统根目录
-
如果X始于 './' 或 '/' 或 '../'
一个。 LOAD_AS_FILE(Y + X)
b。 LOAD_AS_DIRECTORY(Y + X)
LOAD_NODE_MODULES(X,目录名(Y))
引发 “找不到”
只是使用'要求( '表达')为什么不能使用“像其他人一样?这似乎是一个更大的问题,那就是为什么你的系统配置不当,以至于你只能在你安装的模块上使用'require()'而没有路径。我没有在我的require()语句中使用路径。 – jfriend00
在Windows上如何正确配置系统? – Alex