學習SystemJS 筆記

baseURL

全部模塊相對於這個URL加載除非模塊名是個絕對或相對URL
System.config({ baseURL: '/app' });
System.import('es6module.js'); // GET /app/es6module.js
System.import('./es6module.js'); // GET /es6module.js
System.import('http://example.com/es6module.js'); // GET http://example.com/es6module.jsgit

defaultExtensions

若是defaultJSExtensions爲true
若是defaultJSExtensions爲true,.js 擴展名會自動的添加到全部文件的路徑。若是一個模塊名已經有了超過.js擴展名(好比ts),.js仍是會被添加上去:
System.config({ defaultJSExtensions: true });
System.import('./es6module'); // GET /es6module.js
System.import('./es6module.js'); // GET /es6module.js
System.import('./es6module.ts'); // GET /es6module.ts.jses6

** 警告:defaultJSExtensions會向後兼容,未來會被廢棄 **github

map

map選項容許你爲模塊名建立一個別名,當你引入一個模塊,模塊名會被相應的值替換,除非原始模塊名是任何路徑(絕對或相對)。map參數應用在 baseURL 以前:typescript

System.config({ map: { 'es6module.js': 'esSixModule.js' } });
System.import('es6module.js'); // GET /esSixModule.js
System.import('./es6module.js'); // GET /es6Module.js
這裏是另一個例子:
System.config({
baseURL: '/app',
map: { 'es6module': 'esSixModule.js' }
});
System.import('es6module'); // GET /app/esSixModule.jsbabel

packages

packages提供了一個設置metadata映射配置(特指公共路徑的便捷方式)的簡便方式。例如,接下來的代碼段引導SystemJS像這樣:System.import('app')僅經過文件名和默認擴展名ts去加載位於main_router_sample.ts文件:
System.config({
packages: {
app: {
defaultExtension: "ts",
main: "main_router_sample"
}
}
});
System.import('app');app

paths

paths選項和map很類似,可是支持通配符,它應用在map以後但在baseURL以前,你能夠用map和paths,可是請記住paths是Loader規範ES6模塊Loader的一部分,但map只被SystemJS識別:
System.config({ baseURL: '/app', map: { 'es6module': 'esSixModule.js' }, paths: { '*': 'lib/*' } }); System.import('es6module'); // GET /app/lib/esSixModule.js
在這本書的不少例子中,你將會看到System.import('app'),這意味着打開了一個不一樣名字的文件(不是app),由於咱們設置過了mappackage屬性。當你看到像import{Component}from '@angular/core';,@angular會映射到真實路徑,即Angular框架所在之處,.core是子目錄,子目錄的main文件在SystemJS配置中被特指,在這個例子中:
packages: { '@angular/core' : {main: 'index.js'} }框架

transpiler

transpiler選項容許你指定轉換模塊器的名字,轉換模塊器被用來加載應用模塊。若是一個文件不包含至少一個import或export聲明,它不會被轉換。transplier能以包含如下三個值: typescript,traceur和babel:
System.config({ transpiler: 'traceur', map: { traceur: '//unpkg.com/traceur@0.0.108/bin/traceur.js' } });url

相關文章
相關標籤/搜索