【发布时间】:2019-01-19 13:07:50
【问题描述】:
在我的 NodeJS 项目中处理模块包含问题时,我总是在指定需要的项目的其他模块文件的路径方面有点困难。
我显然使用相对路径。但这意味着要执行以下操作:
const helper = require("../../lib/util/helpers.js
这有一些缺点:
我总是需要考虑放置我需要另一个模块的文件的位置。
1234563移动。
我一直认为如果我可以指定相对于项目根目录而不是文件本身的路径会更清晰。需要明确的是,这就是我的package.json 文件(或node_modules 目录)所在的位置。
我知道我可以使用require.resolve() 解析任何外部模块的路径,虽然我可以执行path.dirname(path.dirname(path.dirname(require.resolve('express')))) 之类的操作,但它对我来说似乎太脏了。
不幸的是,据我所知,没有任何 require.modules_path 或 require.projectRoot 属性,所以我需要依靠我上面提到的一些技巧,或者遍历整个树直到第一个包含package.json 文件。
我的问题是:我还缺少什么更好的解决方案吗?
【问题讨论】:
标签: node.js package relative-path