Да Модуль представляет собой один файл, в JavaScript это просто имя файла (с предполагаемой .js
расширения) в кавычках после from
ключевого слова в
import ... from 'some-module';
В конфигурационном файле SystemJS paths
и map
могут использоваться для определения, что такое фактический файл или URL-адрес, на который ссылается some-module
.
packages
в файле конфигурации позволяет применять набор параметров конфигурации (расширение по умолчанию, формат модуля, пользовательский загрузчик и т. Д.) Для всех модулей в определенном месте или под ним (ключ в объекте packages
).
Одним из параметров в packages
является main
, который похож на main
в package.json
в узле (кроме того, что это значение по умолчанию пусто, не index.js
): он определяет, какой файл, когда сам пакет местоположение отображается в from
в загрузке import
заявление.
Итак, я думаю, «как модуль может быть псевдонимом для пакета?» вопрос об этом
Опция карты похожа на пути, но действует очень рано в процессе нормализации . Это позволяет отображать модуль псевдоним для расположения или пакета:
можно объяснить на примере:
paths: {
'npm:': 'node_modules/'
},
map: {
'some-module': 'npm:some-module'
},
packages: {
'some-module': {
main: './index.js'
}
}
когда эти map
, packages
и path
настройки применяются SystemJS к
import something from 'some-module';
они приведут к тому, что SystemJS загрузит модуль с node_modules/some-module/index.js
под номером baseURL
.
и
import something from 'some-module/subcomponent';
отображается node_modules/some-module/subcomponent.js
.
Примечание: это основано на моем опыте с SystemJS 0.19. Я еще не пробовал 0.20.