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
/以标记根开始。