2016-04-01 3 views
1

У меня возникли проблемы с получением systemjs для работы, поэтому он решает узловые модули.systemjs: отображение всего остального в node_modules

У меня есть следующие в моей index.html:

<script src="./system.config.js"></script> 
<script> 
    System.import('blast/test') 
      .then(null, console.error.bind(console)); 
</script> 

Это моя конфигурация:

System.config({ 
    baseUrl: '/', 
    packages: { 
     'app': { 
      defaultExtension: 'js', 
     } 
    }, 

    packageConfigPaths: ['./node_modules/*/package.json'], 

    paths: { 
     'blast/*': 'app/*' 
    } 
}); 

Это прекрасно работает до сих пор. Тем не менее, я хочу также иметь возможность разрешать узловые модули, такие как lodash. Поэтому я пути к этому:

paths: { 
    'blast/*': 'app/*' 
    '*': './node_modules/*' 
} 

Теперь я могу импортировать lodash штраф, но при импорте blast/test я получаю ошибку /app/test 404 (not found). Похоже, что конфигурация пакета больше не используется, этот .js не добавлен. У кого-нибудь есть подсказки, как это разрешить? Я использую SystemJs 0.19.25 Standard.

Спасибо, Робин

ответ

3

Попробуйте использовать конфигурацию карты здесь, а для локального пакета -

System.config({ 
    map: { 
    blast: './app' 
    } 
}); 

./ необходимо отличать URL пространства от става node_modules/app пути (вероятно, причиной, вы использовали пути здесь, чтобы начать?)

Также рекомендуется использовать baseURL: 'node_modules' вместо ввода шаблонов шаблонов (и они в значительной степени равны одному и тому же).