1. ホーム
  2. angular

[解決済み] Angular4へのアップグレード後、'require'という名前が見つからない

2022-06-21 01:22:05

質問

AngularプロジェクトでChart.jsを使用したいです。 以前のAngular2バージョンでは、私は'chart.loader.ts'を使用してこれをうまくやっていました。

export const { Chart } = require('chart.js');

そして、コンポーネントコードでは、ただ

import { Chart } from './chart.loader';

しかし、cli 1.0.0とAngular 4にアップグレードした後、エラーが発生しました: "名前 'require'" を見つけることができません。

このエラーを再現するために

ng new newapp
cd newapp
npm install chart.js --save
echo "export const { Chart } = require('chart.js');" >> src/app/chart.loader.ts
ng serve

tsconfig.json」には、以下のような記述があります。

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

そして'node_modules/@types/node/index.d.ts'にあります。

declare var require: NodeRequire;

だから混乱するんだ。

ちなみに、私は常に警告に遭遇します。

[tslint] The selector of the component "OverviewComponent" should have prefix "app"(component-selector)

.angular-cli.json'に "prefix": "" を設定していますが。angular-cli.json」から「.angular-cli.json」に変更したことが原因でしょうか?

どのように解決するのですか?

問題点(概略は typescript getting error TS2304: cannot find name ' require'. のように)、nodeの型定義がインストールされていないことです。

投影されたゲン担ぎで with @angular/cli 1.x というように、具体的な手順が必要です。

ステップ1 :

設置する @types/node を以下のどちらかでインストールします。

- npm install --save @types/node
- yarn add @types/node -D

ステップ2 : あなたの src/tsconfig.app.jsonを編集します。 ファイルを編集し、空の "types": [] の代わりに以下を追加します。

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

もし私が何か見逃していたら、コメントを書き込んでください。