Eu quero usar Chart.js no meu projeto Angular. Nas versões anteriores do Angular2, tenho feito isso bem usando um 'chart.loader.ts' que tem:
export const { Chart } = require('chart.js');
Então, no código do componente, eu apenas
import { Chart } from './chart.loader';
Mas depois de atualizar para cli 1.0.0 e Angular 4, recebo o erro: "Não é possível encontrar o nome 'requer'".
Para reproduzir o erro:
ng new newapp
cd newapp
npm install chart.js --save
echo "export const { Chart } = require('chart.js');" >> src/app/chart.loader.ts
ng serve
No meu 'tsconfig.json', tenho
"typeRoots": [
"node_modules/@types"
],
E em 'node_modules/@types/node/index.d.ts' há:
declare var require: NodeRequire;
Então, estou confuso.
BTW, encontro constantemente o aviso:
[tslint] The selector of the component "OverviewComponent" should have prefix "app"(component-selector)
Embora eu tenha definido o "prefixo": "" em meu '.angular-cli.json'. Poderia ser porque mudar de 'angular-cli.json' para '.angular-cli.json' a causa?
angular
angular-cli
Thomas Wang
fonte
fonte
Respostas:
O problema (conforme descrito no erro de digitação que obtém TS2304: não é possível localizar o nome 'require' ) é que as definições de tipo para o nó não estão instaladas.
Com um gerado projetado
with @angular/cli 1.x
, as etapas específicas devem ser:Etapa 1 :
Instale
@types/node
com um dos seguintes:Etapa 2 : edite seu arquivo src / tsconfig.app.json e adicione o seguinte no lugar do vazio
"types": []
, que já deve estar lá:Se perdi alguma coisa, faça um comentário e editarei minha resposta.
fonte
tsconfig.app.json
emsrc
adição de pasta"types": ["node"]
, não está no tsconfig raizdeclare var require: any;
ajudou surpreendentemente.Finalmente consegui uma solução para isso, verifique meu arquivo de módulo do aplicativo:
Observe
declare var require: any;
no código acima.fonte
Funcionará em Angular 7 +
Eu estava enfrentando o mesmo problema, estava adicionando
para tsconfig.json da pasta raiz.
Havia mais um tsconfig.app.json na pasta src e resolvi isso adicionando
para o arquivo tsconfig.app.json em
compilerOptions
fonte
Quanto a mim, usando VSCode e Angular 5, só tive que adicionar "nó" aos tipos em tsconfig.app.json. Salve e reinicie o servidor.
Uma coisa curiosa, é que este problema "não consegue encontrar o require (", não acontece ao executar com ts-node
fonte
"types": [ "node" ],
aotsconfig.lib.json
embora.Ainda não tenho certeza da resposta, mas uma possível solução é
fonte
Eu adicionei
no meu arquivo tsconfig e funcionou para mim o arquivo tsconfig.json parece
fonte
Adicione a seguinte linha na parte superior do arquivo que fornece o erro:
fonte
Mudei o
tsconfig.json
arquivo para uma nova pasta para reestruturar meu projeto.Portanto, não foi possível resolver o caminho para a pasta node_modules / @ types dentro da
typeRoots
propriedade de tsconfig.jsonEntão, basta atualizar o caminho de
para
Apenas para garantir que o caminho para node_modules seja resolvido a partir do novo local do tsconfig.json
fonte