应用程序私有node.js模块

时间:2014-03-13 20:19:21

标签: javascript node.js npm node-modules

我有这个应用程序文件夹结构:

project root | +- controllers/ | +- models/ | +- node_modules/ | +- utils/ | +- tests/ | +- package.json

我在utils文件夹中有一些共享功能,我希望在modelscontrollerstests文件夹中的文件中使用这些功能。

我想引用像utils这样的var utils = require('utils');模块,我希望将它存储在应用程序库中。

我不想写var utils = require('../../utils');这样的东西,看起来很难看。我不想将utils文件夹放入node_modules,因为node_modules存储npm install安装的第三方依赖项,并且不受版本控制,我不会# 39;我想混合私人和第三方代码。

有没有解决方案?

UPD:我所知道的唯一方法是通过某种安装脚本在node_modules文件夹符号链接到utils文件夹。还有其他想法吗?

2 个答案:

答案 0 :(得分:0)

您可以向您的环境添加NODE_PATH

export NODE_PATH=`pwd`

如果你在utils目录的根目录中有一个index.js,它应该找到utils

答案 1 :(得分:0)

如果您想以utils名称而非./utils引用某些内容,则 位于node_modules文件夹中。

它没有任何问题,你可以拥有这样的文件结构:

project root
| +- controllers/
| +- models/
| +- node_modules/
|    | +- utils/
| +- tests/
| +- package.json

请注意,您必须将bundleDependencies: ['utils']添加到包描述符文件中,否则它将不会被npm打包。