2016-07-22 3 views
0

私はtypescriptを初めて使用しています。コンパイル時に問題が発生しています。ですから、私が抱えている問題は、.tsファイルを保存すると2回、2つの異なる場所にコンパイルされるということです。TypeScript .tsファイルを保存するときに2回コンパイル

私の現在のファイル構造は次のとおりです。私は.TSファイルを保存すると、彼らはコンパイルとのjsフォルダに配置されたが、その後、新しいフォルダのセットが形式で作成されている

-app 

    |-css (all css files) 

    |-html (all html files) 

    |-js (all js files) 

    |-ts (all ts files) 

-app 

    |-... 

    |-js (all js files) 

    |-app 

     |-ts (all js files [that were saved ts files]) 
    |-... 

私は同様の問題を抱えている人を探していますが、何も見つかりませんでした。次のように私のpackage.jsonファイルとtsconfig.jsonファイルは、以下のとおりです。

package.json

{ 
    "name": "angular2-quickstart", 
    "version": "1.0.0", 
    "scripts": { 
    "start": "tsc && concurrently \"npm run tsc:w\" \"npm run lite\" ", 
    "lite": "lite-server", 
    "postinstall": "typings install", 
    "tsc": "tsc", 
    "tsc:w": "tsc -w", 
    "typings": "typings" 
    }, 
    "license": "ISC", 
    "dependencies": { 
    "@angular/common": "2.0.0-rc.4", 
    "@angular/compiler": "2.0.0-rc.4", 
    "@angular/core": "2.0.0-rc.4", 
    "@angular/forms": "0.2.0", 
    "@angular/http": "2.0.0-rc.4", 
    "@angular/platform-browser": "2.0.0-rc.4", 
    "@angular/platform-browser-dynamic": "2.0.0-rc.4", 
    "@angular/router": "3.0.0-beta.1", 
    "@angular/router-deprecated": "2.0.0-rc.2", 
    "@angular/upgrade": "2.0.0-rc.4", 
    "angular2-in-memory-web-api": "0.0.14", 
    "bootstrap": "^3.3.6", 
    "core-js": "^2.4.0", 
    "d3": "^4.1.1", 
    "d3tip": "0.5.0", 
    "d3-tip": "0.6.7", 
    "d3-tooltip": "0.0.1", 
    "moment": "^2.14.1", 
    "reflect-metadata": "^0.1.3", 
    "rxjs": "5.0.0-beta.6", 
    "systemjs": "0.19.27", 
    "zone.js": "^0.6.12" 
    }, 
    "devDependencies": { 
    "concurrently": "^2.0.0", 
    "lite-server": "^2.2.0", 
    "typescript": "^1.8.10", 
    "typings": "^1.0.4" 
    } 
} 

tsconfig.json:

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "commonjs", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": false, 
    "noImplicitAny": false, 
    "outDir": "app/js", 
    "rootDir": "app/ts" 
    } 
} 

UPDATE:まだこの問題を持ちます。 --not解決--07/28/2016--

+0

app/tsはtsファイルの場所です。 – christian

+0

あなたは2つの異なる場所にファイルを作成すると言っていますが、それは何ですか? –

+0

これはapp/jsとapp/js/app/tsにjsファイルを作成します(また、/ app/tsのパスはapp/js/...に追加されていますので先にはありませんでした) – christian

答えて

1

にROOTDIRを変更、コンパイルを実行し、それぞれあるので、私は私が解決することを数週間前と思いましたこの問題は、私は間違っていた。しかし、私は今解決策を見つけました。

問題は実際に私のjsファイルがコンパイルされている場所ではありませんでした。 jsファイルは、最初のコンパイル時に正しい場所に移動していましたが、Atom IDEを使用しています。atom-typescriptにはAtom-editorに保存されたファイルをコンパイルするデフォルトがあります。したがって、Atomはファイルを保存するたびにファイルを2回目にコンパイルしていました。

FIX:(コンパイルしないために原子typescriptですを伝える)

変更tsconfig.jsonへ:

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "commonjs", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": false, 
    "noImplicitAny": false, 
    "outDir": "./app/js" 
    }, 
    "compileOnSave": false 
} 

私たちがやったすべては "compileOnSave" オプションを追加し、falseに設定しました。 原子コンパイラに保存時にコンパイルされないように指示します。

注**ファイルは、ttscが自分のlite-serverと同時に実行されているために変更されてもコンパイルされます。

+0

これは、Angular2 Quickstartチュートリアルで始まって、Atomを使用してjsファイルをサブフォルダに保存しようとしていたIDE。 – christian

+0

また、必ず「compileOnSave」を持っていることを確認してください:false' ** ** ** "compilerOptions" 'それ以外の場合は、[here](https://discuss.atom.io/t/) atom-typescript-option-compileonsave-false-doesnt-work/24929/6)には、 – pikiou

0
"outDir": "app/js" 

"rootDir": "app/ts" 

"outDir": "app/js"を削除し、オーケー"rootDir": "app/js"

+0

残念ながら、それはどちらもうまくいきませんでした。 – christian

+0

その結果、すべてのjsファイルが/ app/tsに保存されました – christian

関連する問題