次のAngular2コンポーネントを定義しました:
import {Component} from 'angular2/core';
@Component({
selector: 'my-app',
moduleId: module.id,
templateUrl: './app.component.html'
})
export class AppComponent {
}
これをコンパイルしようとすると、5行目に次のエラーが表示されます。
src/app/app.component.ts(5,13): error TS2304: Cannot find name 'module'.
Module.idはCommonJS module
変数を参照していると思います( here を参照)。 tsconfig.jsonでCommonJSモジュールシステムを指定しました。
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"declaration": false,
"removeComments": true,
"noLib": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"sourceMap": true,
"pretty": true,
"allowUnreachableCode": false,
"allowUnusedLabels": false,
"noImplicitAny": true,
"noImplicitReturns": true,
"noImplicitUseStrict": false,
"noFallthroughCasesInSwitch": true
},
"exclude": [
"node_modules",
"dist",
"typings/browser.d.ts",
"typings/browser",
"src"
],
"compileOnSave": false
}
TypeScriptエラーを修正するにはどうすればよいですか?
更新
TypeScript 2 ^を使用する場合は、次のコマンドを使用します。
npm i @types/node --save-dev
(--save-dev
の代わりに、ショートカット-D
を使用できます)
またはグローバルにインストールします:
npm i @types/node --global
必要に応じて、tsconfig.jsonでtypeRoots
またはtypes
を指定することもできますが、デフォルトでは、表示されるすべての「@types」パッケージがコンパイルに含まれます。
旧バージョン
ノードambientDependenciesをインストールする必要があります。 Typings.json
"ambientDependencies": {
"node": "github:DefinitelyTyped/DefinitelyTyped/node/node.d.ts#138ad74b9e8e6c08af7633964962835add4c91e2",
別の方法では、 typings managerを使用して、ノード定義ファイルをグローバルにインストールできます。
typings install dt~node --global --save-dev
次に、typings.jsonファイルは次のようになります。
"globalDependencies": {
"node": "registry:dt/node#6.0.0+20160608110640"
}
TypeScript 2.xおよび@typesを使用してこれを実行する場合は、次の操作が必要です。
npm install -D @types/node
types: ["node"]
ファイルのcompilerOptions
の下にtsconfig.json
を含めます。ステップ2の手順を見つけるのに苦労しました。
編集:
次のこともできます。
"typeRoots": [ "node_modules/@types" ]
ファイルのcompilerOptions
の下にtsconfig.json
を含めます。これはtypes
プロパティの代わりであり、npmでインストールする@types
を自動的に含める利点があります。例:
{
"compilerOptions": {
"typeRoots": [
"node_modules/@types"
]
}
}
[2番目の編集]明らかに 、最新のTypeScriptでは、tsconfig.json
がルートにない場合はtypeRoots
またはtypes
のみが必要ですプロジェクトまたはタイプはnode_modules/@types
に保存されていません。
「アンビエント」の代わりに、タイピングス1.0による「グローバル」を試してください
typings install dt~node --global --save
@ angular/angular2 Quickstartプロジェクトを新しいangular cli自動生成プロジェクトに移植すると、このエラーが発生します。
moduleId: module.id
はもう必要ないようです。
これは最新の自動生成コンポーネントです。
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'app works!';
}
すべての発生を削除すると、エラーが解決しました。
2つの重要なポイント:
typings install dt~node --global --save
を実行してタイピングを登録します。したがって、typings.json
で次のセクションを取得できます。
"globalDependencies": {
"node": "registry:dt/node#6.0.0+20160608110640"
}
新しいモジュールへの参照を追加します。二通り:
TSの依存関係への参照を直接追加します
/// <reference path="../../../typings/globals/node/index.d.ts" />
typings/index.d.ts
のfiles
セクションにtsconfig.json
を追加します
{
"files": [
"typings/index.d.ts"
]
}
詳しくは こちら をご覧ください。
私はVS 2015を使用していますが、同じ問題がありましたが、以下を使用して解決しました:
angular.ioウェブサイトからtypings.jsonファイルを追加し(現時点では2.0.0最終)、実行します:
typings install // don't forget to install typings globally
それから
npm install -D @types/node --save
私が持っているpackage.jsonで
"devDependencies": {
"@types/node": "6.0.40",
...
typings.jsonには次の設定があります
{
"compilerOptions": {
"target": "es5",
"module":"commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": true,
"noImplicitAny": true,
"suppressImplicitAnyIndexErrors": true,
"allowSyntheticDefaultImports": true,
"types": []
},
"exclude": [
"node_modules",
"app-dist"
]
}
型を空の配列として追加する必要がありました
追伸私にとって個人的には奇妙な問題です。なぜなら、typings.json内のタイピングを除外するとすぐに「モジュール」が強調表示されますが、それを入れると重複がたくさんあるからです。誰が責任があるのかわからない、私、TypeScriptまたはビジュアルスタジオ:)
私はプロジェクトにインストールし、うまく働いた
npm install @types/node --save
module.id
名前モジュールが見つかりません。
この問題を解決するには、次の手順に従ってください。
ステップ1:以下のコマンドを使用してノードモジュールをインストールする
npm i @types/node --save
ステップ2:tsconfig.app.json
の下のファイルsrc/app
を変更する
"types": [
"node"
]
これは私がEclipse(Webclipse)/ Windows上で私のために働いたことでした。
ステップ1:
ターミナル
$ npm install @types/node --global --save
ステップ2:
tsconfig.json
{
"compilerOptions": {
...,
"types": ["node"]
}
}
さらに、package.jsonに次の依存関係があるため、TypeScript 2を使用していました。
"devDependencies": {
...
"TypeScript": "~2.0.10",
"@types/node": "^6.0.46",
...
},