javascript更好地导入钩子而不导航相关文件夹

时间:2017-10-26 07:58:47

标签: javascript node.js meteor ecmascript-6

在我的文件夹结构中编写测试时困扰我的事情是:

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

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

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

有更好的解决方案吗?

我在想一个导入钩子,可能在根测试目录中,所以我可以从那里导入所有的东西,当我在测试时,我可以从导入钩子导入,没有执行所有../../../../导航。

2 个答案:

答案 0 :(得分:2)

使用

/imports/api/tasks.js

而不是

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

/以标记根开始。

答案 1 :(得分:2)

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

  

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

模块解析器可能会与webpack2模块处理冲突,因此您只想将其限制为测试:

.babelrc示例:

SELECT TOP 10 t.TEXT AS 'SQL Text'
    ,st.execution_count
    ,ISNULL(st.total_elapsed_time / st.execution_count, 0) AS 'AVG Excecution Time'
    ,st.total_worker_time / st.execution_count AS 'AVG Worker Time'
    ,st.total_worker_time
    ,st.max_logical_reads
    ,st.max_logical_writes
    ,st.creation_time
    ,ISNULL(st.execution_count / DATEDIFF(second, st.creation_time, 
    getdate()), 0) AS 'Calls Per Second'
    FROM sys.dm_exec_query_stats st
   CROSS APPLY sys.dm_exec_sql_text(st.sql_handle) t
   ORDER BY creation_time desc