Olá senhor!
Relatório de erro
Estou recebendo o seguinte erro:
ERROR in [at-loader] ./node_modules/protractor/built/index.d.ts:5:10
TS2440: A declaração de importação está em conflito com a declaração local de 'PluginConfig'.
ERROR in [at-loader] ./node_modules/protractor/built/index.d.ts:5:24
TS2440: A declaração de importação está em conflito com a declaração local de 'ProtractorPlugin'.
10.5.0
~5.1.2
^4.2.4
any
Windows 10
const {SpecReporter} = require ('jasmine-spec-reporter');
exportações.config = {
allScriptsTimeout: 11000,
especificações: [
'./e2e/ * / .e2e-spec.ts'
],
capacidades: {
'browserName': 'chrome'
},
directConnect: true,
baseUrl: ' http: // localhost : 4200 /',
estrutura: 'jasmim',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000,
imprimir: função () {}
},
onPrepare () {
require ('ts-node'). register ({
projeto: 'e2e / tsconfig.e2e.json'
});
jasmine.getEnv (). addReporter (novo SpecReporter ({spec: {displayStacktrace: true}}));
}
};
Solicitação de recurso
Por favor me ajude a resolver
A partir de hoje estou tendo o mesmo problema (com Transferidor 5.4.2 e Angular 8)
O mesmo problema aqui com Transferidor 5.4.2 e Angular 8
Eu me deparei com isso hoje, enquanto atualizava nossa versão do Typescript. Estamos no AngularJS e isso ocorre tanto para o Transferidor 5.4.1 quanto para o 5.4.2. Não recebo o erro em Typescript 3.6.4 (3.6.x), mas sim em Typescript 3.7.2 (3.7.x). Acredito que esteja relacionado a essa mudança significativa: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#local -and-import-type-declarations-now-conflito
Por favor conserte; precisamos de uma coalescência nula! :)
Mesmo problema aqui. Meu projeto está no Protractor 5.4.2 e gostaríamos de migrar para o TypeScript 3.7.
Seria ótimo fazer o backport da correção (com certeza funciona):
89fbf75d4103db2cd20fd0c1c4ca7efebc52c049
37bef24331c1012bfc2cc7d3fa259a00e69bd192
do mestre para 5.4.2
5.4.2 é a versão mais recente disponível em npmjs.com.
6.0.0 contém alterações importantes, por isso não é bom para o meu projeto.
(https://github.com/angular/protractor/blob/6.0.0/CHANGELOG.md)
CC: @sandersn @heathkit
Duplicado de # 5325
Edit: Devo esclarecer que trabalho na equipe Typescript, não na equipe Angular. Conversei com alguns membros da equipe que disseram que tentariam publicar uma nova versão 5. *, mas acredito que o processo não é simples.
Hoje eu fiz o downgrade da versão do typescript de 3.7.x para 3.6.x., está funcionando bem. Obrigado mattcasey
Obrigado por esclarecer @sandersn; essa seria a minha próxima pergunta. Não dependemos do controle de fluxo e tentei atualizar para 6.0.0, mas mesmo aquele pacote publicado não parece ter sua correção ainda. Seria ótimo se alguém da equipe comentasse aqui: estamos conversando há alguns dias, alguns meses ou mais?
Edit: Eu ofereceria ajuda, mas parece que o atraso é "apenas" no lançamento de uma nova versão :)
Edição 2: Como o resto do nosso sistema mudou para o TS 3.7, o menor dos dois males para mim foi substituir os tipos do transferidor por enquanto vinculando a um arquivo .d.ts personalizado em nosso tsconfig: https: // www.typescriptlang.org/docs/handbook/module-resolution.html#path -mapping
@mattcasey Você poderia descrever com um pouco mais de detalhes como funciona a sua correção atual? Apenas um arquivo index.d.ts copiado com os caminhos de exportação corretos e, em seguida, use o mapeamento de caminho para mapear o transferidor para o novo arquivo?
Tipos de atualização / dependência de nó
npm install -g @types/node@8
Certifique-se de que os tipos / nós estão listados em devDependencies e dependências
"dependencies": {
...
"@types/node": "^8.10.59",
...
},
"devDependencies": {
...
"@types/node": "^8.10.59",
...
}
Caso isso aconteça com qualquer módulo usando o typescript 3.7.2, você pode usar a instrução "as".
import { module as otherModuleName } from "./module"
Ou você pode exportar o módulo como padrão para que possa usar um nome de variável diferente
Hoje eu fiz o downgrade da versão do typescript de 3.7.x para 3.6.x., está funcionando bem. Obrigado mattcasey
Ele colocou "typescript": "~ 3.6" no arquivo package.json, em seguida, execute "npm install" no terminal e funcionou para mim. Obrigado!
Mesmo problema e quando fiz o downgrade para 3.6.4 funcionou.
Mesmo problema aqui, eu tive que npm uninstall -g typescript
para que a versão local de tsc
tivesse prioridade. Eu poderia ter mexido com PATH
vez disso ...
@ woppa684 minha correção é essencialmente criar meus próprios tipos para o Protractor e dizer ao Typescript para ignorar o que está dentro de node_modules. Meu arquivo protractor.d.ts
(localizado em meu projeto em test-e2e/protractor.d.ts
) tem a seguinte aparência:
// Note: This stub exists to override Protractor types which are incompatible with TS 3.7 as of 5.4.2 and 6.0.0
declare module 'protractor' {
let browser: any;
let element: any;
let by: any;
let ExpectedConditions: any;
let until: any;
let Key: any;
}
E então em tsconfig:
{
...
"compilerOptions": {
...
"paths": {
"protractor": ["test-e2e/protractor.d.ts"]
}
}
}
Isso me permite usar o Typescript 3.7 com a desvantagem de que os métodos do transferidor não são mais seguros para tipos.
Uma solução alternativa que usamos é criar uma versão modificada do transferidor com as correções em https://github.com/angular/protractor/pull/5326/
Nós o usamos temporariamente em vez do transferidor
// package.json
"protractor": "tomyam1/protractor-ts3.7-fix"
Estou tendo esse problema no devops com o Angular. Isso apenas começou a acontecer. Voltei e peguei um package.json e um package-lock.json de um momento que sei que funcionou.
Eu atualizei o Angular. Tentei várias versões datilografadas diferentes. Funciona no meu computador local, mas não no devops. É apenas a parte do vs build que está falhando. O material npm / ng funciona perfeitamente.
Tudo funciona perfeitamente no meu sistema.
https://developercommunity.visualstudio.com/content/problem/855096/npm-ng-suddenly-not-working-conflict-pluginconfig.html
Caso isso aconteça com qualquer módulo usando o typescript 3.7.2, você pode usar a instrução "as".
import { module as otherModuleName } from "./module"
Ou você pode exportar o módulo como padrão para que possa usar um nome de variável diferente
@anicarrr , poderia dar um exemplo para a segunda resposta que você forneceu?
Pode não ser a melhor solução para todos, mas você deve ser capaz de corrigir isso adicionando o seguinte em tsconfig.json:
"skipLibCheck": true
Caso isso aconteça com qualquer módulo usando o typescript 3.7.2, você pode usar a instrução "as".
import { module as otherModuleName } from "./module"
Ou você pode exportar o módulo como padrão para que possa usar um nome de variável diferente@anicarrr , poderia dar um exemplo para a segunda resposta que você forneceu?
Quero dizer exportar como:
export default myModule
então, ao importá-lo, você pode apenas usar o nome que quiser, como:
import whateverName from myModule
Isso foi corrigido em https://github.com/angular/protractor/pull/5326. Estamos trabalhando para lançar um patch.
Fyi: entretanto, usar a opção do compilador tsc "skipLibCheck": true
deve ser uma solução alternativa suficiente para aqueles afetados por este problema.
Olá senhor!
Relatório de erro
Estou recebendo o seguinte erro:ERROR in [at-loader] ./node_modules/protractor/built/index.d.ts:5:10
TS2440: A declaração de importação está em conflito com a declaração local de 'PluginConfig'.
ERROR in [at-loader] ./node_modules/protractor/built/index.d.ts:5:24
TS2440: A declaração de importação está em conflito com a declaração local de 'ProtractorPlugin'.
- Versão do nó:
10.5.0
- Versão do transferidor:
~5.1.2
- Versão angular:
^4.2.4
- Navegador (es):
any
- Sistema operacional e versão
Windows 10
- Seu arquivo de configuração do transferidor
const {SpecReporter} = require ('jasmine-spec-reporter');
exportações.config = {
allScriptsTimeout: 11000,
especificações: [
'./e2e/ * / .e2e-spec.ts'
],
capacidades: {
'browserName': 'chrome'
},
directConnect: true,
baseUrl: ' http: // localhost : 4200 /',
estrutura: 'jasmim',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000,
imprimir: função () {}
},
onPrepare () {
require ('ts-node'). register ({
projeto: 'e2e / tsconfig.e2e.json'
});
jasmine.getEnv (). addReporter (novo SpecReporter ({spec: {displayStacktrace: true}}));
}
};
- Etapas para reproduzir o bug - falha na compilação da execução do npm
Solicitação de recurso
Por favor me ajude a resolver
Oi SachinBN,
Você precisa alterar a versão do Typescript instalada no projeto. Use o comando abaixo no terminal do VS Code para alterar a versão (sem aspas).
"npm install -g [email protected] "
Uma vez feito isso, verifique a versão do texto digitado em seu projeto no VS Code, usando o comando abaixo
"tsc -v"
Deve mostrar 3.6.2. Use a mesma versão no arquivo package.json. Assim que a versão for alterada para 3.6.2 execute "tsc" novamente, o erro deve ter desaparecido.
Espero que isto ajude.
Cumprimentos,
Ameya
Tive esse problema em meu aplicativo angular e posso resolvê-lo removendo a instrução de importação do transferidor, que é adicionada automaticamente pelas sugestões.
Gostar:
importar {elemento} de 'transferidor'
importar {promessa} de 'transferidor'
Apenas remova-os e executarei como esperado.
O meu funcionou, espero que seu código funcione também.
Cumprimentos,
Nishit Zinzuvadiya
npx tsc -v
Version 3.8.3
Nó e NPM mais recentes.
Meu arquivo
import * as mysql from "mysql2";
const config =
process.env.NODE_ENV == "prod"
? {
connectionLimit: 10,
host: "*********.rds.amazonaws.com",
user: "admin",
database: "p_" + process.env.PROJECT_ID,
password: "*********",
prefix: `p_${process.env.PROJECT_ID}_`
}
: {
connectionLimit: 10,
host: "host.docker.internal",
user: "root",
database: "i**_project",
password: "root",
prefix: ""
};
export const db = mysql.createPool(config);
export const prefix = config.prefix;
E eu tenho o mesmo erro
npm run start
> [email protected] start /workspaces/icod-prt
> npx tsc && node build/index.js
typings/modules/mysql2/index.d.ts:677:1 - error TS2440: Import declaration conflicts with local declaration of 'Connection'.
677 import Connection = require('~mysql2~mysql/lib/Connection');
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
typings/modules/mysql2/index.d.ts:679:1 - error TS2440: Import declaration conflicts with local declaration of 'PoolConnection'.
679 import PoolConnection = require('~mysql2~mysql/lib/PoolConnection');
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
typings/modules/mysql2/index.d.ts:680:1 - error TS2440: Import declaration conflicts with local declaration of 'Pool'.
680 import Pool = require('~mysql2~mysql/lib/Pool');
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
typings/modules/mysql2/index.d.ts:682:1 - error TS2440: Import declaration conflicts with local declaration of 'PoolCluster'.
682 import PoolCluster = require('~mysql2~mysql/lib/PoolCluster');
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
typings/modules/mysql2/index.d.ts:684:1 - error TS2440: Import declaration conflicts with local declaration of 'Query'.
684 import Query = require('~mysql2~mysql/lib/protocol/sequences/Query');
Às vezes, o compilador do TypeScript atribui os erros à arma fumegante de outra pessoa.
Recebi a mensagem de erro exata do OP hoje enquanto trabalhava em arquivos de teste de unidade .spec.ts. Como eu não precisava do Protractor para testes de unidade, desinstalei-o temporariamente com npm uninstall protractor
que fez com que o TypeScript gerasse o erro real:
ERROR in src/app/.../...spec.ts:12:30 - error TS2307: Cannot find module 'protractor'.
12 import { EventEmitter } from 'protractor';
A causa foi que o Visual Studio Code inexplicavelmente criou esta instrução de importação automática em vez da normal, import { EventEmitter } from '@angular/core';
ainda tenho isso no 4.0.2 .. hmmm
Tive esse problema em meu aplicativo angular e posso resolvê-lo removendo a instrução de importação do transferidor, que é adicionada automaticamente pelas sugestões.
Gostar:
importar {elemento} de 'transferidor'
importar {promessa} de 'transferidor'Apenas remova-os e executarei como esperado.
O meu funcionou, espero que seu código funcione também.Cumprimentos,
Nishit Zinzuvadiya
Para mim, foi a importação automática do VSCode, que importou EventEmitter
de Protractor
vez de @angular/core
. Corrigir isso resolveu o problema para mim.
Comentários muito úteis
Pode não ser a melhor solução para todos, mas você deve ser capaz de corrigir isso adicionando o seguinte em tsconfig.json: