我似乎無法理解模塊和路徑。我正在編寫一個Chrome擴展,並嘗試使用angular2與typescript。我有一次工作,但我想重組我的目錄。似乎每次我想要獲得項目設置或添加文件或頁面時,都會遇到此問題。有什麼地方可以去了解定位模塊和javascript/typescript文件的規則嗎?SystemJS打字稿困境?
我想要做的是有一個src
文件夾我的HTML,CSS(以下/ SASS),和打字稿文件,並與我的HTML,CSS一www
文件夾,編譯js文件。我已經安裝了我的咕嚕任務,它們編譯得很好。由於我使用的是Angular 2,並且在擴展模塊中我無法使用內聯腳本,因此我爲每個創建的頁面創建了兩個單獨的腳本,一個src/pages/index-page.ts
腳本具有系統設置並直接從www/index.html
加載<script src="js/pages/index-page.js"></script>
:
declare var System : any;
System.config({
packages: {
appScripts: {
defaultExtension: 'js'
}
}
});
System.import('js/pages/index-boot')
.then(null, console.error.bind(console));
而且src/pages/index-boot.ts
腳本,它應該加載
import {provide} from 'angular2/core';
import {bootstrap} from 'angular2/platform/browser';
import {ROUTER_PROVIDERS, APP_BASE_HREF, LocationStrategy, HashLocationStrategy} from 'angular2/router';
import {IndexApp} from './index-app';
bootstrap(IndexApp, [
ROUTER_PROVIDERS,
provide(LocationStrategy, { useClass: HashLocationStrategy })
]);
當然,我得到一個網絡故障試圖加載/www/js/pages/index-boot
。如果我添加了js,那麼它會加載該文件,但隨後發現錯誤router
和index-app
。
爲什麼index-page
試圖在沒有擴展名的瀏覽器中加載index-boot
?我是否需要以不同的方式組織我的文件?有沒有一個網站可以解釋所有這些?我不明白爲什麼我必須爲一個頁面分配三個單獨的代碼文件(系統配置和導入啓動,引導和應用程序)。
有一個網站的某個地方來解釋一下嗎?名爲'app'的軟件包是否重要?這與目錄結構有關嗎?相對於html還是頁面?我能像他們的快速入門中的示例那樣使用捆綁包嗎?我可以有多個包嗎? –
從github上的systemjs自述開始。沒有名字的'app'並不重要 - 它只是一個帶有編譯好的js文件的文件夾名稱。它相對於'System.baseURL'參見更多信息的自述文件。你可以擁有任意數量的包。通常你使用的每個'圖書館'都是一個包,比如rxjs,導演等等。 – Amid