Jef*_*gga 3 javascript node.js node-modules
我想创建一个节点包模块,但我很难要求根项目目录中的文件在我创建的节点包模块中使用。
如果我有这样的目录结构
- node_modules
- library_name
- lib
- index.js
- bin
- run.sh
- config.js
Run Code Online (Sandbox Code Playgroud)
如果调用了 run.sh,它将运行 index.js。在index.js中,如何解析根目录,稍后我可以在index.js中要求config.js?
二进制包可以显式接受配置路径作为参数。
如果包二进制文件不作为 NPM 脚本运行,则它不应依赖于父项目结构。
如果包二进制文件通过 NPM 脚本运行:
"scripts": {
"foo": "library_name"
}
Run Code Online (Sandbox Code Playgroud)
这会将当前工作目录设置为项目根目录,因此可能需要如下:
const config = require(path.join(process.cwd(), 'config'));
Run Code Online (Sandbox Code Playgroud)
两种方法可以结合起来;这通常用于向第三方 CLI(Mocha 等)提供默认位置的配置文件。