使用 TypeScript 导入“全局”模块

Col*_*inE 5 typescript systemjs

我正在使用 Mocha 和 TypeScript 编写测试......这是一个简单的示例:

import {assert} from 'chai';
import Greeting from '../../../src/component/greeting/greeting';

describe('Greeting component', function () {
    it('should greet correctly', function () {
        let greeting = new Greeting();
        assert(greeting.greeting === 'Hello World', 'should express the correct greeting');
    });
});
Run Code Online (Sandbox Code Playgroud)

我可以看到这些被正确编译。我将它们作为 common-js 模块输出,并使用 system-js 作为浏览器内加载器。

System.import('component/greeting/greetingSpec.js')
    .catch(console.log.bind(console))
    .then(function() {
        mocha.run();
    })
Run Code Online (Sandbox Code Playgroud)

我想创建一个列出所有“spec”文件的文件:

import * as greeting from './greeting/greetingSpec';
import * as foo from './greeting/fooSpec';
Run Code Online (Sandbox Code Playgroud)

然而,TypeScript 编译器可以看到这些导入未被使用,因此不会将它们包含在 JS 输出中。

如何为我的测试定义一个可以通过 system-js 加载的“入口点”?

mk.*_*mk. 6

尝试使用仅副作用import

import './greeting/greetingSpec';
import './greeting/fooSpec';
Run Code Online (Sandbox Code Playgroud)

这不会被忽略。请参阅此讨论以获取更多信息。