node.js - Node 模块 : symlink or not to symlink?

标签 node.js npm

我的同事认为他的想法很棒。他不喜欢包含许多点出现的路径(超过 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/

相关文章:

Node.Js Express-Generator 项目生成器错误(编码 && 编码.toLowerCase()

node.js - Angularjs、文件上传和 IE9

javascript - 在 Node.js 中获取本地 IP 地址

node.js - Node-gyp 和自定义依赖/库/头文件安装路径

node.js - 尝试从 Node 生成 ruby​​ sass

javascript - 在浏览器上使用 javascript 在 Google API 上发送 post 请求

node.js - 同一个socket.io接口(interface)能否支持传统socket连接以及websocket连接

javascript - react /Node 构建错误。找不到模块 'history' 的声明文件。 'node_modules/history/index.js' 隐含一个 'any' 类型

node.js - npm install ionic 后 Ionic 无法启动

node.js - 在 ExtendScript 中使用 npm 包