JavaScript更好的导入钩子,而不通过相对文件夹导航

在我的文件夹结构中编写testing时,困扰着我的是以下内容:

//App meteor/imports/api/tasks.js //test meteor/test/imports/api/tasks.test.js 

所以现在当我从tasks.js中导入一些东西,我import { task } from '../../../imports/api/tasks.js' ,我的文件夹结构变得比这更大。

有更好的解决scheme吗?

我正在考虑导入钩子,也许在根testing目录中,所以我可以从那里导入所有的东西,当我在testing中,我可以从导入钩子导入,而不必做所有的事情../../../../导航。

如果您使用的是babel,则可以将babel-plugin-module-resolver添加到您的babelconfiguration中。

Babel插件在使用Babel编译代码时为模块添加新的parsing器。 这个插件允许你添加包含你的模块的新的“根”目录。 它还允许您为目录,特定文件甚至其他npm模块设置自定义别名。

模块parsing器可能会与webpack2模块处理相冲突,所以您只需要将其限制为testing:

.babelrc例子:

  "env": { "test": { "plugins": [ ["module-resolver", { "root": ["./meteor/imports"] }] ] } } 

使用

 /imports/api/tasks.js 

代替

 ../../../imports/api/tasks.js 

/以标记根开始。