我想我們的庫中創建模塊,所以每次我們打電話的時候,我們可以用import {Api, Map} from "ourlibrary"
打字稿創建模塊
我目前使用以下。
import {Api} from "../../Library/Api";
import {MapPage} from "../map/map";
如何創建我自己的軟件包以獲得以下結果?
import {Api, Map} from "OurLib"
我想我們的庫中創建模塊,所以每次我們打電話的時候,我們可以用import {Api, Map} from "ourlibrary"
打字稿創建模塊
我目前使用以下。
import {Api} from "../../Library/Api";
import {MapPage} from "../map/map";
如何創建我自己的軟件包以獲得以下結果?
import {Api, Map} from "OurLib"
我看到兩個步驟來做到這一點:
創建您SystemJS配置的map
塊的條目:
System.config({
map: {
'OurLib': 'path-to-ourlib'
},
packages: {
'OurLib': {
main: 'index.js',
defaultExtension: 'js'
}
}
});
創建打字稿文件(例如, index.ts
)作爲入口點模塊,用於導入/導出要在庫外提供的內容:
export {Api} from "../../Library/Api";
export {MapPage} from "../map/map";
創建一個頂級ES6風格的js文件的導出導入爲單個文件並將其命名爲OurLib
。
exports.Api = require('../../Library/Api').Api;
exports.Map = require('.../map/map').Map;
該方法的好處是它不會將您與單個模塊加載器系統綁定。由於它是直接的ES6功能(需要/出口),它可以通過SystemJS,的WebPack,消耗打字稿等
如在下面的評論在需要聲明的末尾提到,之所以.Api
和.Map
是因爲你通常從文件中導入的是類。你會在
export class Api {}
和
export class Map {}
在每個相應的文件的情況下使用的語法是這樣的。這樣你只分配你想要導出的類而不是整個需要的文件。它使您可以更好地控制捆綁的,公開的模塊。
爲什麼在行尾使用'.Api'&'.map'? –
您通常會引用該導入文件中的特定類。 –
你的意思是'.API和.map'是導出類的名字? –
我正在使用離子,其中有tscnofig.json ...我如何使用tsconfig上的設置? http://pastie.org/10752352 - 它也有webdev ..有點不確定這是否發生在webdev或tsconfig – Basit
你的意思是你想爲你的lib定義一個契約,即ourlib.d.ts? –