[解決済み] webpack のアップグレード後、名前空間 NodeJS が見つからない
2022-02-07 09:44:02
質問
WebPackでビルドされたAngular2アプリケーションを持っています。WebPackをv1.8からv2にアップグレードしましたが、すべて問題なく動作しているようです。唯一の問題は、古いコードに次のようなものがあることです。
import Timer = NodeJS.Timer;
....
apptInterval: Timer;
....
this.apptInterval = setInterval(() => { ... }, 1000);
アップグレード後、このようにエラーが発生します。
TS2503: Cannot find namespace 'NodeJS'.
tsconfig.jsonはこのような感じです。
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": ["es2015", "dom"],
"noImplicitAny": true,
"suppressImplicitAnyIndexErrors": true
}
}
Angular/Webpack のドキュメントには、もはや
typings.json
しかし、Webpack 1のディレクトリからコピーしても、どうにもならない。中身は typings.json が
{
"globalDependencies": {
"jasmine": "registry:dt/jasmine#2.2.0+20160621224255",
"node": "registry:dt/node"
}
}
興味深いことに、NodeJSへの参照を削除すると、すべてがうまく機能します。このように。
apptInterval: any;
....
this.apptInterval = setInterval(() => { ... }, 1000);
F12デバッガで見ると、apptIntervalの型が
ZoneTask
. きっと強い型にする方法があるのでしょうが、私には理解できません。私が見つけた唯一の提案は
typings install dt~node --global --save-dev
(これは本質的にtyping.jsonを更新するものですが、役に立ちません。
解決方法は?
もし、あなたが tsconfig.app.json を作業ディレクトリに追加してください。 ノード を タイプ のフィールドを使用します。のように。
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"module": "es6",
"baseUrl": "",
"types": ["node"] --> ADD THIS
},
"exclude": [
"test.ts",
"**/*.spec.ts"
]
}
関連
-
[解決済み] node_modules が空になったので、`npm install`を実行する必要があるかもしれない。
-
[解決済み】Angular2エラー。exportAs "が "ngForm "に設定されたディレクティブは存在しません。
-
[解決済み] Angular 4: コンポーネントファクトリが見つかりません。@NgModule.entryComponents に追加しましたか?
-
[解決済み] Angular 2のコンポーネントプロパティにデフォルト値を設定する方法は?
-
[解決済み] updateValueAndValidityとは?
-
[解決済み] TypeScript getting error TS2304: cannot find name ' require'.
-
[解決済み] Angular 6 Error trying to diff '[object Object]'. 配列と反復記号のみが許可されます。
-
[解決済み] switchの使用時に「ステートメントはif文でフィルタリングされなければならない」というtslintのクレームが発生する。
-
[解決済み] Angular2: [(ngModel)] with [ngModelOptions]="{standalone: true}"を使って、モデルのプロパティへの参照にリンクさせる。
-
[解決済み] Angularで電話番号の入力をフォーマットする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Angular 4: コンポーネントファクトリが見つかりません。@NgModule.entryComponents に追加しましたか?
-
[解決済み] FormBuilder のプロバイダがない [重複] 。
-
[解決済み] 型 '{}' は型 '{ title: string; text: string; }' に代入できません。
-
[解決済み] Angular CLIでコンポーネントの名前を変更する方法は?
-
[解決済み] webpack のアップグレード後、名前空間 NodeJS が見つからない
-
[解決済み] CLIでコンポーネントを削除する最も良い方法は何ですか?
-
[解決済み] ReferenceError: localStorageが定義されていません。
-
[解決済み] なぜ mat-tables matRowDef は 2 つの変数を含むのですか?
-
[解決済み] Angular 4 - "BrowserAnimationsModule "または "NoopAnimationsModule "のいずれかをアプリケーションに組み込んでください。
-
[解決済み】TypeScript - 正しいバージョンのsetTimeoutを使用する(ノードとウィンドウの比較)