相关疑难解决方法(0)

是否可以使用通配符从目录中的所有文件导入模块?

使用ES6,我可以从这样的文件中导入几个导出:

import {ThingA, ThingB, ThingC} from 'lib/things';
Run Code Online (Sandbox Code Playgroud)

但是,我喜欢每个文件有一个模块的组织.我最终得到这样的导入:

import ThingA from 'lib/things/ThingA';
import ThingB from 'lib/things/ThingB';
import ThingC from 'lib/things/ThingC';
Run Code Online (Sandbox Code Playgroud)

我希望能够做到这一点:

import {ThingA, ThingB, ThingC} from 'lib/things/*';
Run Code Online (Sandbox Code Playgroud)

或类似的东西,理解的约定是每个文件包含一个默认导出,并且每个模块的名称与其文件相同.

这可能吗?

javascript ecmascript-6 es6-modules

220
推荐指数
6
解决办法
17万
查看次数

mocha / babel 如何动态转译我的测试代码?

我的问题不是为什么有些东西不起作用,而是为什么它起作用。是的。

\n\n

我有一个小型的nodeJS命令行工具,其中包含nodeJS尚不支持开箱即用的功能,最值得注意的是:

\n\n
    \n
  • import声明
  • \n
  • String.includes()
  • \n
\n\n

因此,对于交付(构建),我转译+捆绑我的源代码(使用parcel,就像webpack一样)。

\n\n

令人惊奇的是,我的所有(除了一个)摩卡测试都直接针对我的类而不是捆绑包运行。尽管如此,它们仍然有效!包括很多import说法。并包括“ES6 自测试”:

\n\n
it( \'String - include\', () => {\n    var s = \'Southern Bananas\'\n    assert( s.includes( \'anana\' ) )\n    assert( !s.includes( \'kiwi\' ) )\n} )\n
Run Code Online (Sandbox Code Playgroud)\n\n

因此:

\n\n

我的测试代码中有 String.include ,而不仅仅是在被测试的源代码中。并且没有地方可以转译或捆绑我的测试代码\xe2\x80\xa6 因此,对我的愚蠢问题表示歉意:

\n\n

为什么这有效?某处是否有秘密的即时编译?(如果是的话,我也可以将其用于我的可交付测试代码的调试风格吗?)

\n\n

我的mocha.opts比较简单:

\n\n
--require @babel/register\n--require ./test/once.js  (nothing special here, either)\n--reporter list\n--recursive\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的.babelrc有这个:

\n\n
{\n    "presets": [\n …
Run Code Online (Sandbox Code Playgroud)

mocha.js node.js transpiler ecmascript-6

7
推荐指数
1
解决办法
2986
查看次数