Protractor: TS2440: la declaración de importación entra en conflicto con la declaración local de 'PluginConfig'.

Creado en 6 nov. 2019  ·  27Comentarios  ·  Fuente: angular/protractor

¡Hola señor!

Informe de error
Recibo el siguiente error a continuación:

ERROR en [at-loader] ./node_modules/protractor/built/index.d.ts:5:10
TS2440: la declaración de importación entra en conflicto con la declaración local de 'PluginConfig'.

ERROR en [at-loader] ./node_modules/protractor/built/index.d.ts:5:24
TS2440: La declaración de importación entra en conflicto con la declaración local de 'ProtractorPlugin'.

  • Versión de nodo: 10.5.0
  • Versión de transportador: ~5.1.2
  • Versión angular: ^4.2.4
  • Navegador (es): any
  • Sistema operativo y versión Windows 10
  • Su archivo de configuración de transportador

const {SpecReporter} = require ('jazmín-spec-reporter');

exportaciones.config = {
allScriptsTimeout: 11000,
especificaciones: [
'./e2e/ * / .e2e-spec.ts'
],
capacidades: {
'browserName': 'chrome'
},
directConnect: verdadero,
baseUrl: ' http: // localhost : 4200 /',
marco: 'jazmín',
jasmineNodeOpts: {
showColors: verdadero,
defaultTimeoutInterval: 30000,
imprimir: función () {}
},
onPrepare () {
require ('ts-node'). register ({
proyecto: 'e2e / tsconfig.e2e.json'
});
jasmine.getEnv (). addReporter (nuevo SpecReporter ({spec: {displayStacktrace: true}}));
}
};

  • Pasos para reproducir el error - npm run build fail

Solicitud de función
Por favor ayúdame a resolver

Comentario más útil

Puede que no sea la mejor solución para todos, pero debería poder solucionarlo agregando lo siguiente en tsconfig.json:

"skipLibCheck": true

Todos 27 comentarios

A partir de hoy, tengo el mismo problema (con Transportador 5.4.2 y Angular 8)

El mismo problema aquí con Transportador 5.4.2 y Angular 8

Me encontré con esto hoy mientras actualizaba nuestra versión de TypeScript. Estamos en AngularJS y ocurre tanto para Protractor 5.4.1 como para 5.4.2. No obtengo el error en Typescript 3.6.4 (3.6.x), pero sí con Typescript 3.7.2 (3.7.x). Creo que está relacionado con este cambio radical: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#local -and-import-type-declarations-now-conflict

Por favor, arregla; ¡Necesitamos la unión nula! :)

El mismo problema aqui. Mi proyecto está en Protractor 5.4.2 y nos gustaría migrar a TypeScript 3.7.

Sería genial volver a exportar la solución (seguramente funciona):
89fbf75d4103db2cd20fd0c1c4ca7efebc52c049
37bef24331c1012bfc2cc7d3fa259a00e69bd192
de maestro a 5.4.2

5.4.2 es la última versión disponible en npmjs.com.
6.0.0 contiene cambios importantes, por lo que no es bueno para mi proyecto.
(https://github.com/angular/protractor/blob/6.0.0/CHANGELOG.md)

CC: @sandersn @heathkit

Duplicado de # 5325

Editar: Debo aclarar que trabajo en el equipo de TypeScript, no en el equipo de Angular. Hablé con algunos miembros del equipo que dijeron que intentarían publicar una nueva versión 5. *, pero creo que el proceso no es sencillo.

Hoy he degradado la versión mecanografiada de 3.7.xa 3.6.x., está funcionando bien. Gracias Mattcasey

Gracias por aclarar @sandersn; Esa iba a ser mi próxima pregunta. No confiamos en el control de flujo e intenté actualizar a 6.0.0, pero incluso ese paquete publicado no parece tener su solución todavía. Sería genial si alguien del equipo pudiera comentar aquí: ¿estamos hablando de unos días, unos meses o más?

Editar: me ofrecería ayudar, pero parece que el retraso es "solo" en el lanzamiento de una nueva versión :)

Edición 2: dado que el resto de nuestro sistema pasó a TS 3.7, el menor de dos males para mí fue anular los tipos de transportador por ahora vinculando a un archivo .d.ts personalizado en nuestro tsconfig: https: // www.typescriptlang.org/docs/handbook/module-resolution.html#path -mapping

@mattcasey ¿Podría describir con un poco más de detalle cómo funciona su solución actual? ¿Solo un archivo index.d.ts copiado con las rutas de exportación correctas y luego usar la asignación de ruta para asignar el transportador al nuevo archivo?

Tipos de actualización / dependencia de nodos
npm install -g @types/node@8

Asegúrese de que los tipos / nodos se enumeran tanto en devDependencies como en las dependencias

"dependencies": { ... "@types/node": "^8.10.59", ... }, "devDependencies": { ... "@types/node": "^8.10.59", ... }

En caso de que esto suceda con cualquier módulo que utilice mecanografiado 3.7.2, puede utilizar la instrucción "as".

import { module as otherModuleName } from "./module"

O puede exportar el módulo por defecto para poder usar un nombre de variable diferente

Hoy he degradado la versión mecanografiada de 3.7.xa 3.6.x., está funcionando bien. Gracias Mattcasey

Puso "mecanografiado": "~ 3.6" en el archivo package.json, luego ejecutó "npm install" en la terminal y funcionó para mí. ¡Gracias!

El mismo problema y cuando bajé a 3.6.4 funcionó.

El mismo problema aquí, tuve que npm uninstall -g typescript para que la versión local de tsc tuviera prioridad. Podría haberme metido con PATH lugar ...

@ woppa684 mi solución es esencialmente crear mis propios tipos para Transportador y decirle a Typescript que ignore el que está dentro de node_modules. Mi archivo protractor.d.ts (ubicado en mi proyecto en test-e2e/protractor.d.ts ) se ve así:

// 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;
}

Y luego en tsconfig:

{
  ...
  "compilerOptions": {
    ...
    "paths": {
      "protractor": ["test-e2e/protractor.d.ts"]
    }
  }
}

Esto me permite usar TypeScript 3.7 con la desventaja de que los métodos de transportador ya no son seguros para escribir.

Una solución alternativa que usamos es crear una construcción modificada de transportador con las correcciones en https://github.com/angular/protractor/pull/5326/

Que lo usamos temporalmente en lugar del transportador

// package.json
"protractor": "tomyam1/protractor-ts3.7-fix"

Tengo este problema en devops con Angular. Esto acaba de empezar a suceder. Volví y agarré un package.json y package-lock.json de un momento en el que sé que funcionó.
Actualicé Angular. Probé varias versiones diferentes de mecanografiado. Funciona en mi computadora local, pero no en devops. Es solo la parte de vs build la que está fallando. Las cosas npm / ng funcionan bien.
Todo funciona completamente en mi sistema.
https://developercommunity.visualstudio.com/content/problem/855096/npm-ng-suddenly-not-working-conflict-pluginconfig.html

En caso de que esto suceda con cualquier módulo que utilice mecanografiado 3.7.2, puede utilizar la instrucción "as".

import { module as otherModuleName } from "./module"

O puede exportar el módulo por defecto para poder usar un nombre de variable diferente

@anicarrr , ¿podría proporcionar un ejemplo para la segunda respuesta que proporcionó?

Puede que no sea la mejor solución para todos, pero debería poder solucionarlo agregando lo siguiente en tsconfig.json:

"skipLibCheck": true

En caso de que esto suceda con cualquier módulo que utilice mecanografiado 3.7.2, puede utilizar la instrucción "as".
import { module as otherModuleName } from "./module"
O puede exportar el módulo por defecto para poder usar un nombre de variable diferente

@anicarrr , ¿podría proporcionar un ejemplo para la segunda respuesta que proporcionó?

Me refiero a exportar como:

export default myModule

entonces, cuando lo importe, puede usar el nombre que desee, como:

import whateverName from myModule

Esto se solucionó en https://github.com/angular/protractor/pull/5326. Estamos trabajando para lanzar un parche.

fyi: mientras tanto, usar la opción del compilador tsc "skipLibCheck": true debería ser una solución alternativa suficiente para los afectados por este problema.

¡Hola señor!

Informe de error
Recibo el siguiente error a continuación:

ERROR en [at-loader] ./node_modules/protractor/built/index.d.ts:5:10
TS2440: la declaración de importación entra en conflicto con la declaración local de 'PluginConfig'.

ERROR en [at-loader] ./node_modules/protractor/built/index.d.ts:5:24
TS2440: La declaración de importación entra en conflicto con la declaración local de 'ProtractorPlugin'.

  • Versión de nodo: 10.5.0
  • Versión de transportador: ~5.1.2
  • Versión angular: ^4.2.4
  • Navegador (es): any
  • Sistema operativo y versión Windows 10
  • Su archivo de configuración de transportador

const {SpecReporter} = require ('jazmín-spec-reporter');

exportaciones.config = {
allScriptsTimeout: 11000,
especificaciones: [
'./e2e/ * / .e2e-spec.ts'
],
capacidades: {
'browserName': 'chrome'
},
directConnect: verdadero,
baseUrl: ' http: // localhost : 4200 /',
marco: 'jazmín',
jasmineNodeOpts: {
showColors: verdadero,
defaultTimeoutInterval: 30000,
imprimir: función () {}
},
onPrepare () {
require ('ts-node'). register ({
proyecto: 'e2e / tsconfig.e2e.json'
});
jasmine.getEnv (). addReporter (nuevo SpecReporter ({spec: {displayStacktrace: true}}));
}
};

  • Pasos para reproducir el error - npm run build fail

Solicitud de función
Por favor ayúdame a resolver

Hola SachinBN,

Necesita cambiar la versión de Typecript instalada en el proyecto. Use el siguiente comando en el terminal VS Code para cambiar la versión (sin comillas).

"npm install -g [email protected] "

Una vez hecho esto, verifique la versión de mecanografiado en su proyecto en VS Code, usando el siguiente comando

"tsc -v"

Debería mostrar 3.6.2. Utilice la misma versión en el archivo package.json. Una vez que se cambia la versión a 3.6.2, ejecute "tsc" nuevamente, el error debería desaparecer.

Espero que esto ayude.

Saludos,

Ameya

Tuve este problema en mi aplicación angular y puedo resolverlo eliminando la declaración de importación del transportador que se agrega automáticamente mediante las sugerencias.

Igual que:

importar {elemento} de 'transportador'
importar {promesa} de 'transportador'

Simplemente elimínelos. Ejecutaré como se esperaba.
El mío funcionó, espero que tu código también funcione.

Saludos,
Nishit Zinzuvadiya

npx tsc -v
Version 3.8.3

Último nodo y NPM.

Mi archivo

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;

Y tengo el mismo error

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');

A veces, el compilador de TypeScript simplemente culpa de los errores a la pistola humeante de otra persona.

Recibí el mensaje de error exacto del OP hoy mientras trabajaba en archivos de prueba unitaria .spec.ts. Como no necesitaba Transportador para las pruebas unitarias, lo desinstalé temporalmente con npm uninstall protractor que provocó que TypeScript arrojara el error real:

ERROR in src/app/.../...spec.ts:12:30 - error TS2307: Cannot find module 'protractor'.
12 import { EventEmitter } from 'protractor';

La causa fue que Visual Studio Code había creado inexplicablemente esta declaración de importación automática en lugar de la normal, import { EventEmitter } from '@angular/core';

todavía tengo esto en 4.0.2 .. hmmm

Tuve este problema en mi aplicación angular y puedo resolverlo eliminando la declaración de importación del transportador que se agrega automáticamente mediante las sugerencias.

Igual que:

importar {elemento} de 'transportador'
importar {promesa} de 'transportador'

Simplemente elimínelos. Ejecutaré como se esperaba.
El mío funcionó, espero que tu código también funcione.

Saludos,
Nishit Zinzuvadiya

Para mí, fue la importación automática de VSCode, que importó EventEmitter de Protractor lugar de @angular/core . Arreglar esto solucionó el problema para mí.

¿Fue útil esta página
0 / 5 - 0 calificaciones