繁体   English   中英

应用程序专用的node.js模块

[英]Application private node.js 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的第三方依赖项,并且不受版本控制,并且我不想混合私有代码和第三方代码。

有什么解决办法吗?

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

您可以将NODE_PATH添加到您的环境中:

export NODE_PATH=`pwd`

如果您在utils目录的根目录中有一个index.js,它将找到utils

如果要通过utils名称而不是./utils引用某些./utils ,则该内容必须位于node_modules文件夹中。

它没有任何问题,您可以具有如下文件结构:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM