我的同事认为他的想法很棒。他不喜欢包含许多点出现的路径(超过 2 或 3 个)。他的想法如下:使用 postinstall 命令创建指向 node_modules 中感兴趣的模块的符号链接(symbolic link)。这样你就可以需要像这样的所需模块:
var some_module = require('some_module')
而不是
var some_module = require('../../../another/branch/some_module')
对我来说,这似乎是一个肮脏的黑客行为。我看到的一个缺点是可能与内置模块和 npm 模块发生冲突。但这可能是小问题。
我提出了另一种解决方案 - 创建单独的模块来注册感兴趣的模块并通过它引用它们:
// a/branch/some_module.js
module.exports = 5
require('register')('some_module', module.exports)
// another/branch/interested_module.js
var some_module = require('register')('some_module') // 5
说实话,这两种解决方案看起来都很丑。
那么,问题来了,解决深度依赖问题的正确方法是什么?
最佳答案
我们使用node-app-root-path需要本地模块。
例如:
var appRoot = require('app-root-path');
var myModule = require(appRoot + '/lib/my-module.js');
关于node.js - Node 模块 : symlink or not to symlink?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36842042/