2016-11-18 66 views
0

我已經使用starter示例設置了一個Angular 2項目。代碼位於apps目錄下,ts以相同的結構編譯爲js,lite-server正確地爲文件提供服務。所有工作正常。將lite服務器更改爲使用dist目錄

我想的TS輸出移動到dist目錄,因爲我不喜歡JS在同一結構&地圖文件(這是在其他環境中很常見)。

添加

"outDir": "dist" 

到tsconfig.json文件並導致TS編譯到位於dist /應用程序/應用程序目錄下的.js。不知道爲什麼這增加了第二個應用程序的結構。

通過試錯法測試,似乎basedir =「./」適用於舊結構。不知道爲什麼這個工程,但它確實。

使用BS-config.js

module.exports = { 
    port: 3000, 
    server: { 
    // old structure, this works 
    baseDir: "./" 
    // new structure commented out, does not work 
    //baseDir: "./dist" 
    } 
}; 

發揮與此一時,而不能得到DIST結構提供文件。

總是得到一個「無法GET /」響應。

我tsconfig.json文件:

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "commonjs", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": false, 
    "noImplicitAny": false, 
    "suppressImplicitAnyIndexErrors": true, 
    "outDir": "dist" 
    } 
} 

將不勝感激,如果有人可以解釋我的結論和我所缺少的。

+0

可以嗎分享你的'tsconfig.json'文件? – ranakrunal9

+0

@ ranakrunal9已添加。謝謝。 – GregHouse

回答

0

由於您的dist文件夾結構像dist/app/app可能是lite-server無法爲您的文件服務器。 所以,你可以在你的tsconfig.json按您的文件夾結構,使您的dist文件夾將有正確的文件夾結構定義你的基本路徑嘗試,不謝靈運像dist/app/app,並在其後的定義正確server.baseDirbs-config.js

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "commonjs", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": false, 
    "noImplicitAny": false, 
    "suppressImplicitAnyIndexErrors": true, 
    "baseUrl": "./app", 
    "outDir": "./dist" 
    } 
} 
+0

謝謝。 之後tsconfig.json更改,/ dist下的結構看起來是正確的(應用程序文件夾連同源結構)。 我曾嘗試以下BS-config.js的設置,都產生相同的 「無法GET /」 'module.exports = { 端口:3000, 服務器:{// 不起作用 // BASEDIR :「./dist/app」 //不起作用 // baseDir:「./dist」 } }; ' – GregHouse

+0

對不起,代碼的格式。經過10次不成功的格式化嘗試,閱讀文檔,谷歌搜索等仍然是一個謎如何獲得代碼註釋中的換行符('只在每行使用時才起作用,雙空格ENTER或
對我不起作用。 – GregHouse