Saya ingin menggunakan Chart.js dalam proyek Angular saya. Di versi Angular2 sebelumnya, saya telah melakukan ini dengan baik dengan menggunakan 'chart.loader.ts' yang memiliki:
export const { Chart } = require('chart.js');
Kemudian di kode komponen saya baru saja
import { Chart } from './chart.loader';
Tapi setelah mengupgrade ke cli 1.0.0 dan Angular 4, saya mendapatkan error: "Cannot find name 'require'".
Untuk mereproduksi kesalahan:
ng new newapp
cd newapp
npm install chart.js --save
echo "export const { Chart } = require('chart.js');" >> src/app/chart.loader.ts
ng serve
Di 'tsconfig.json' saya, saya punya
"typeRoots": [
"node_modules/@types"
],
Dan di 'node_modules/@types/node/index.d.ts' ada:
declare var require: NodeRequire;
Jadi saya bingung.
BTW, saya terus-menerus menemukan peringatan:
[tslint] The selector of the component "OverviewComponent" should have prefix "app"(component-selector)
Meskipun saya telah menyetel "awalan": "" di '.angular-cli.json' saya. Mungkinkah karena perubahan dari 'angular-cli.json' menjadi '.angular-cli.json' penyebabnya?
angular
angular-cli
Thomas Wang
sumber
sumber
Jawaban:
Masalahnya (seperti diuraikan dalam skrip mendapatkan kesalahan TS2304: tidak dapat menemukan nama 'memerlukan' ) adalah bahwa definisi jenis untuk node tidak diinstal.
Dengan gen yang diproyeksikan
with @angular/cli 1.x
, langkah spesifiknya harus:Langkah 1 :
Instal
@types/node
dengan salah satu dari berikut ini:Langkah 2 : Edit file src / tsconfig.app.json Anda dan tambahkan yang berikut ini di tempat kosong
"types": []
, yang seharusnya sudah ada di sana:Jika saya melewatkan sesuatu, tulis komentar dan saya akan mengedit jawaban saya.
sumber
tsconfig.app.json
bawahsrc
penambahan folder"types": ["node"]
, itu tidak di root tsconfigdeclare var require: any;
membantu secara mengejutkan.Akhirnya saya mendapat solusi untuk ini, periksa file modul Aplikasi saya:
Perhatikan
declare var require: any;
pada kode di atas.sumber
Akan bekerja di Angular 7+
Saya menghadapi masalah yang sama, saya menambahkan
ke tsconfig.json dari folder root.
Ada satu lagi tsconfig.app.json di bawah folder src dan saya menyelesaikannya dengan menambahkan
ke file tsconfig.app.json di bawah
compilerOptions
sumber
Bagi saya, menggunakan VSCode dan Angular 5, hanya perlu menambahkan "node" ke tipe di tsconfig.app.json. Simpan, dan mulai ulang server.
Satu hal yang aneh, adalah bahwa masalah ini "tidak dapat menemukan yang disyaratkan (", tidak terjadi saat mengeksekusi dengan ts-node
sumber
"types": [ "node" ],
ketsconfig.lib.json
meskipun.Masih belum yakin jawabannya, tetapi kemungkinan solusinya adalah
sumber
saya tambahkan
di file tsconfig saya dan itu berfungsi untuk saya file tsconfig.json terlihat seperti
sumber
Tambahkan baris berikut di bagian atas file yang memberikan kesalahan:
sumber
Saya memindahkan
tsconfig.json
file ke folder baru untuk merestrukturisasi proyek saya.Jadi itu tidak dapat menyelesaikan jalur ke folder node_modules / @ types di dalam
typeRoots
properti tsconfig.jsonJadi perbarui saja jalur dari
untuk
Untuk memastikan bahwa jalur ke node_modules diselesaikan dari lokasi baru tsconfig.json
sumber