我有这个应用程序文件夹结构:
project root
|
+- controllers/
|
+- models/
|
+- node_modules/
|
+- utils/
|
+- tests/
|
+- package.json
我在utils
文件夹中有一些共享功能,我希望在models
,controllers
和tests
文件夹中的文件中使用这些功能。
我想引用像utils
这样的var utils = require('utils');
模块,我希望将它存储在应用程序库中。
我不想写var utils = require('../../utils');
这样的东西,看起来很难看。我不想将utils
文件夹放入node_modules
,因为node_modules
存储npm install
安装的第三方依赖项,并且不受版本控制,我不会# 39;我想混合私人和第三方代码。
有没有解决方案?
UPD:我所知道的唯一方法是通过某种安装脚本在node_modules
文件夹符号链接到utils
文件夹。还有其他想法吗?
答案 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打包。