gpt4 book ai didi

node.js - 需要 NodeJS 中使用规范或根相对路径的文件

转载 作者:太空宇宙 更新时间:2023-11-04 01:08:07 24 4
gpt4 key购买 nike

我有一个虚构的实用程序包( Node 模块),我将其导入到我的应用程序中,如下所示:

var sqrt = require('common-math').sqrt

但是,在 common-math 模块中使用相同的模块似乎很棘手。我似乎只有两个选择,这两个都不理想:

  • 在我需要访问模块的每个地方都使用相对路径。这可以是 require('../sqrt')require('../../../lib/sqrt')
  • 将模块放入 node_modules/sqrt/index.js 中,然后执行 require('sqrt')

我只是希望能够像这个包的所有使用者一样 require('common-math').sqrt 。我意识到我可以创建一个 node_modules/common-math 文件夹,其中包含指向我的包的 index.js 的符号链接(symbolic link),但这是常见/推荐的做法吗?

最佳答案

Node的模块加载系统非常有限,但是你想要的都是可能的。然而它并不像您想象的那么优雅:

var root = (function (p, path) {
for (; 'common-math' !== path.basename(p); p = path.dirname(p));
return p;
}(module.filename, require('path'));

var a = require(root + '/sqrt.js');

甚至:

var root = (function (p) {
return p.slice(0, p.indexOf('common-math') + 1).join('/');
}(module.filename.split('/')));

var a = require(root + '/sqrt.js');

关于node.js - 需要 NodeJS 中使用规范或根相对路径的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20962931/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com