使用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)
或类似的东西,理解的约定是每个文件包含一个默认导出,并且每个模块的名称与其文件相同.
这可能吗?
我的问题不是为什么有些东西不起作用,而是为什么它起作用。是的。
\n\n我有一个小型的nodeJS命令行工具,其中包含nodeJS尚不支持开箱即用的功能,最值得注意的是:
\n\nimport声明String.includes()。因此,对于交付(构建),我转译+捆绑我的源代码(使用parcel,就像webpack一样)。
\n\n令人惊奇的是,我的所有(除了一个)摩卡测试都直接针对我的类而不是捆绑包运行。尽管如此,它们仍然有效!包括很多import说法。并包括“ES6 自测试”:
it( \'String - include\', () => {\n var s = \'Southern Bananas\'\n assert( s.includes( \'anana\' ) )\n assert( !s.includes( \'kiwi\' ) )\n} )\nRun Code Online (Sandbox Code Playgroud)\n\n我的测试代码中有 String.include ,而不仅仅是在被测试的源代码中。并且没有地方可以转译或捆绑我的测试代码\xe2\x80\xa6 因此,对我的愚蠢问题表示歉意:
\n\n我的mocha.opts比较简单:
--require @babel/register\n--require ./test/once.js (nothing special here, either)\n--reporter list\n--recursive\nRun Code Online (Sandbox Code Playgroud)\n\n我的.babelrc有这个:
{\n "presets": [\n …Run Code Online (Sandbox Code Playgroud)