2

Angular JavaScript (ES5) プロジェクトを TypeScript 2.0 に段階的に移行しようとしていますが、非常に苦労していることを認めなければなりません。
そのため、最初に index.js を index.ts に変更し、古い Typings.json の方法ではなく、 typings をインストールする推奨される方法( npm install --save @types/node) を使用しました。

ビルドのセットアップではgulpここで提案されているように、browserifyおよび現在導入tsifyしています。 babelify

閲覧する

//...
.plugin(tsify)
.transform(babelify, {
      presets: ['es2015'],
      extensions: ['.ts', '.js']
})
//...

tsconfig.json

{
"files": [
    "assets/app/index.ts"
],
"compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false
}
}

ただし、ビルドは次のように失敗します。

TypeScript エラー: .tmp/public/app/index.ts(4,15): エラー TS2304: 名前 'require' が見つかりません。

tsifyインストールされたタイピングを出力ディレクトリにコピーしないようで、上記のエラーが発生します。
問題を解決する方法について何か提案はありますか?

編集node_modules/@types
フォルダーを C: ドライブのルートに コピーすると、エラーが解消されますが、理由がわかりません...

4

1 に答える 1

1

誰かが同じ問題に遭遇した場合:

tsconfig.json にtypesRootオプションを明示的に追加すると、修正されました。

"typeRoots" : ["./node_modules/@types"]

これはデフォルト設定の「はず」ですが、何らかの理由で C: ドライブのルートの下にある @types フォルダーを検索します。

TypeScript ドキュメントから:

typesRoots が指定されている場合、typeRoots の下のパッケージのみが含まれます。

于 2016-10-20T12:46:02.503 に答える