SystemJS 配置中的模块 Vs 位置 Vs 包是什么?
What is module Vs location Vs package in SystemJS configuration?
我对 SystemJS 配置中使用的各种术语有点困惑。它谈论 模块、位置、包 等...
JS中的module不就是一个文件,package不是一个模块或者文件的集合吗?如果是这样,模块如何成为包的别名?
这是来自documentation page:
The map option is similar to paths, but acts very early in the normalization process. It allows you to map a module alias to a location or package:
是的,模块是单个文件,在 javascript 中,它只是
中 from
关键字后引号中的文件名(假定具有 .js
扩展名)
import ... from 'some-module';
在 SystemJS 配置文件中,paths
和 map
可用于定义 some-module
所指的实际文件或 URL。
配置文件中的 packages
允许您为特定位置或以下的所有模块应用一组配置参数(默认扩展名、模块格式、自定义加载程序等)(packages
中的键对象)。
packages
中的一个设置是main
,它类似于node中package.json
中的main
(除了它的默认值为空,而不是index.js
):当包位置本身出现在 import
语句中的 from
中时,它确定加载哪个文件。
所以,我想 "how a module can be an alias to a package?" 关于这个的问题
The map option is similar to paths, but acts very early in the
normalization process. It allows you to map a module alias to a
location or package:
可以在这个例子中解释:
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。
我对 SystemJS 配置中使用的各种术语有点困惑。它谈论 模块、位置、包 等...
JS中的module不就是一个文件,package不是一个模块或者文件的集合吗?如果是这样,模块如何成为包的别名?
这是来自documentation page:
The map option is similar to paths, but acts very early in the normalization process. It allows you to map a module alias to a location or package:
是的,模块是单个文件,在 javascript 中,它只是
中from
关键字后引号中的文件名(假定具有 .js
扩展名)
import ... from 'some-module';
在 SystemJS 配置文件中,paths
和 map
可用于定义 some-module
所指的实际文件或 URL。
packages
允许您为特定位置或以下的所有模块应用一组配置参数(默认扩展名、模块格式、自定义加载程序等)(packages
中的键对象)。
packages
中的一个设置是main
,它类似于node中package.json
中的main
(除了它的默认值为空,而不是index.js
):当包位置本身出现在 import
语句中的 from
中时,它确定加载哪个文件。
所以,我想 "how a module can be an alias to a package?" 关于这个的问题
The map option is similar to paths, but acts very early in the normalization process. It allows you to map a module alias to a location or package:
可以在这个例子中解释:
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。