node.js - 在 NPM 中查找依赖项的根目录
问题描述
假设我已经安装awesome-package
inside my-app
,假设结构如下所示:
my-app/
node_modules/
awesome-package/
node_modules/
another-package/
static/
index.js
dist/
index.js
dist/
index.js
my-app/index.js
我在里面require('awesome-package')
。现在我想获取的根目录awesome-package
,所以我基本上fs.readFileSync
可以从another-package
如何获取脚本的根目录?
解决方案
我认为require.resolve可以用来实现这一点。它将为您提供模块的完整路径。从中获取根目录应该很容易。
const path = require('path');
let loc = require.resolve('awesome-package');
// most likely something like the following depends on the package
// /path/to/my-app/node_modules/awesome-package/static/index.js
console.log(loc);
// something like the following will give you the root directory
// of the package
console.log(path.join(
loc.substring(0,a.lastIndexOf('node_modules')),
'node_modules',
'awesome-package'
));
推荐阅读
- sql - 查询执行时间过长
- java - 如何在嵌套的 onclick 方法(android)中获取动态数组值?
- javascript - Document.selector.innerHTML 仅在刷新页面后有效
- flutter - Fluttter 作为 Root 页面导航到页面
- amazon-dynamodb - Appsync“批量创建”解析器给出“映射模板”错误
- azure - azure front door - 为什么我们需要向后端池添加多个后端
- android - Pixel 2 设备中的临时文件夹
- node.js - 在 pg-promise 中编写子查询的好方法
- mysql - 单词末尾的未知字符
- jquery - 如何使用 Angular 更新 jquery 代码中的数据绑定?