避免在require()上使用相对路径

时间:2014-12-10 04:27:16

标签: node.js

我是NodeJs的新手,我的项目正在增长,我不想进行相对导入,我想从npm安装这样的导入。

我有以下目录结构

项目   node_modules /   SRC /     模型/       person.js   测试/     模型/       person.js   app.js   config.js

我正在使用猫鼬,我可以从require('mongoose')的任何地方要求猫鼬但是例如如果想要app.js我需要我的人模型我写require('./model/person')test/model/person.js 1}}我需要写require('../../src/model/person')

存在某种方式“原生”(没有安装更多依赖项),使其与我应用的任何地方的require('model/person')类似?

2 个答案:

答案 0 :(得分:2)

此主题为extensively discussed here。我的结论主要是:

  1. 将测试放在单独的目录中的想法是无效的。将测试放在主要代码旁边:app/users/user.jsapp/users/user.test.js
  2. 我在node_modules/app处创建了一个指向../app的符号链接,因此我可以从代码库中的任何位置require('app/users');开始。

答案 1 :(得分:0)

没有任何内容表明您无法将自己的代码放在node_modules中。这将使您可以根据需要引用它。如果你有一个.gitignore或同等的函数来阻止提交node_modules中的代码,你可以为你自己的代码添加例外。

node_modules
!node_modules/model/