Подстановочные знаки пути не работают с system.js

Согласно документации system.js, это должно быть можно настроить пути для system.js с подстановочными знаками. Однако мне не удалось заставить это работать. У меня есть specRunner с юнит-тестами jasmine, и я следил за тестированием angular2. учебник, чтобы вставить раздел сценария, чтобы отображались спецификации. Однако для этого мне нужно вручную импортировать каждую спецификацию, когда я хочу импортировать *.spec.js, чтобы ввести все тесты. Вот мой SpecRunner.html, показывающий, какой код работает, а какой нет.

<script>
    // Configure systemjs to use the .js extension for imports from the src/js folder
    System.config({
        packages: {
            'src/js': {defaultExtension: 'js'}
        }
    });

    // Import spec files: Does NOT work
    System.paths['specs'] = 'src/js/*.spec';
    Promise.all([
        System.import('specs')
    ])

    // Import spec files: Does work
    System.paths['specs'] = 'src/js/greeter.spec';
    Promise.all([
        System.import('specs'),
    ])

    // Import spec files: Does work
    Promise.all([
        System.import('src/js/greeter.spec')
    ])
</script>

Кто-нибудь может сказать мне, можно ли настроить путь для system.js с помощью подстановочных знаков?


person Anthony Sneed    schedule 13.01.2016    source источник


Ответы (1)


Пути должны содержать подстановочные знаки как в ключе, так и в значении. SystemJS должен знать, что вы отображаете.

...
// Should work like this
System.paths['specs/*'] = 'src/js/*.spec';
Promise.all([
    System.import('specs/greeter')
])

//Here, you're essentially aliasing
System.paths['specs'] = 'src/js/greeter.spec';
Promise.all([
    System.import('specs');
    // above is equivalent to:
    System.import('src/js/greeter.spec'),
])
person Dzmitry Paulenka    schedule 17.01.2016