Protractor: TS2440: Deklarasi impor bertentangan dengan deklarasi lokal 'PluginConfig'.

Dibuat pada 6 Nov 2019  ·  27Komentar  ·  Sumber: angular/protractor

Hai pak!

Laporan bug
Saya mendapatkan kesalahan berikut di bawah ini:

GALAT di [at-loader] ./node_modules/protractor/built/index.d.ts:5:10
TS2440: Deklarasi impor bertentangan dengan deklarasi lokal 'PluginConfig'.

GALAT di [at-loader] ./node_modules/protractor/built/index.d.ts:5:24
TS2440: Deklarasi impor bertentangan dengan deklarasi lokal 'ProtractorPlugin'.

  • Versi Simpul: 10.5.0
  • Versi Busur Derajat: ~5.1.2
  • Versi Sudut: ^4.2.4
  • Peramban: any
  • Sistem Operasi dan Versi Windows 10
  • File konfigurasi busur derajat Anda

const { SpecReporter } = require('jasmine-spec-reporter');

export.config = {
allScriptsTimeout: 11000,
spesifikasi: [
'./e2e/ */ .e2e-spec.ts'
],
kemampuan: {
'nama browser': 'chrome'
},
DirectConnect: benar,
baseUrl: ' http://localhost :4200/',
kerangka: 'melati',
jasmineNodeOpts: {
showColors: benar,
defaultTimeoutInterval: 30000,
cetak: fungsi() {}
},
siapsiap() {
membutuhkan('ts-node').register({
proyek: 'e2e/tsconfig.e2e.json'
});
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
}
};

  • Langkah-langkah untuk mereproduksi bug - npm run build gagal

Permintaan fitur
Tolong bantu saya untuk menyelesaikannya

Komentar yang paling membantu

Mungkin bukan solusi terbaik untuk semua orang, tetapi Anda harus dapat memperbaikinya dengan menambahkan yang berikut ini di tsconfig.json:

"skipLibCheck": true

Semua 27 komentar

Mulai hari ini saya mendapatkan masalah yang sama (dengan Busur Derajat 5.4.2 dan Angular 8)

Masalah yang sama di sini dengan Busur Derajat 5.4.2 dan Angular 8

Saya mengalami ini hari ini saat memutakhirkan versi TypeScript kami. Kami menggunakan AngularJS dan itu terjadi untuk Busur Derajat 5.4.1 dan 5.4.2. Saya tidak mendapatkan kesalahan pada TypeScript 3.6.4 (3.6.x), tetapi saya melakukannya dengan TypeScript 3.7.2 (3.7.x). Saya yakin ini terkait dengan perubahan yang melanggar ini: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#local -and-imported-type-declarations-now-conflict

Tolong perbaiki; kita perlu penggabungan nol! :)

Masalah yang sama disini. Proyek saya ada di Protractor 5.4.2 dan kami ingin bermigrasi ke TypeScript 3.7 .

Akan sangat bagus untuk mendukung perbaikan (pasti berhasil):
89fbf75d4103db2cd20fd0c1c4ca7efebc52c049
37bef24331c1012bfc2cc7d3fa259a00e69bd192
dari master ke 5.4.2

5.4.2 adalah versi terbaru yang tersedia di npmjs.com .
6.0.0 berisi perubahan yang melanggar, jadi ini tidak baik untuk proyek saya.
( https://github.com/angular/protractor/blob/6.0.0/CHANGELOG.md )

CC: @sandersn @heathkit

Duplikat #5325

Sunting: Saya harus mengklarifikasi bahwa saya bekerja di tim TypeScript, bukan tim Angular. Saya berbicara dengan beberapa anggota tim yang mengatakan mereka akan mencoba untuk menerbitkan versi 5.* yang baru, tetapi saya yakin prosesnya tidak sederhana.

Hari ini saya telah menurunkan versi TypeScript dari 3.7.x ke 3.6.x.,Ini berfungsi dengan baik. Terima kasih mattcasey

Terima kasih telah mengklarifikasi @sandersn; itu akan menjadi pertanyaan saya berikutnya. Kami tidak bergantung pada kontrol aliran dan saya mencoba memperbarui ke 6.0.0 tetapi bahkan paket yang diterbitkan itu tampaknya belum Anda perbaiki. Akan sangat bagus jika seseorang dari tim dapat berkomentar di sini: apakah kita berbicara beberapa hari, beberapa bulan, atau lebih?

Sunting: Saya menawarkan bantuan tetapi sepertinya penundaan itu "hanya" dalam merilis versi baru :)

Sunting 2: Karena sisa sistem kami telah pindah ke TS 3.7, yang lebih rendah dari dua kejahatan bagi saya adalah untuk mengganti jenis dari busur derajat untuk saat ini dengan menautkan ke file .d.ts khusus di tsconfig kami: https:// www.typescriptlang.org/docs/handbook/module-resolution.html#path -mapping

@mattcasey Bisakah Anda menjelaskan lebih detail cara kerja perbaikan Anda saat ini? Hanya file index.d.ts yang disalin dengan jalur ekspor yang benar dan kemudian menggunakan pemetaan jalur untuk memetakan busur derajat ke file baru?

Perbarui jenis/ketergantungan simpul
npm install -g @types/node@8

Pastikan tipe/simpul terdaftar di devDependencies dan dependencies

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

Jika ini terjadi dengan modul apa pun yang menggunakan TypeScript 3.7.2, Anda dapat menggunakan pernyataan "sebagai".

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

Atau Anda dapat mengekspor modul sebagai default sehingga Anda dapat menggunakan nama variabel yang berbeda

Hari ini saya telah menurunkan versi TypeScript dari 3.7.x ke 3.6.x.,Ini berfungsi dengan baik. Terima kasih mattcasey

Itu menempatkan "typescript": "~3.6" ke file package.json kemudian jalankan "npm install" di terminal dan itu berhasil untuk saya. Terima kasih!

Masalah yang sama dan ketika saya menurunkan ke 3.6.4 itu berhasil.

Masalah yang sama di sini, saya harus npm uninstall -g typescript sehingga versi lokal tsc akan diprioritaskan. Saya bisa saja mengacaukan PATH sebagai gantinya…

@ woppa684 perbaikan saya pada dasarnya adalah membuat tipe saya sendiri untuk Busur Derajat dan memberi tahu TypeScript untuk mengabaikan yang ada di dalam node_modules. File protractor.d.ts (terletak di proyek saya di test-e2e/protractor.d.ts ) saya terlihat seperti ini:

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

Dan kemudian di tsconfig:

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

Ini memungkinkan saya untuk menggunakan TypeScript 3.7 dengan kelemahan bahwa metode busur derajat tidak lagi aman untuk mengetik.

Solusi alternatif yang kami gunakan adalah membuat build busur derajat yang https://github.com/angular/protractor/pull/5326/

Kami daripada sementara menggunakannya alih-alih busur derajat

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

Saya mengalami masalah ini pada devops dengan Angular. Ini baru mulai terjadi. Saya kembali dan mengambil package.json dan package-lock.json dari waktu yang saya tahu itu berhasil.
Saya memutakhirkan Angular. Saya mencoba beberapa versi TypeScript yang berbeda. Ini berfungsi di komputer lokal saya, tetapi tidak di devops. Hanya bagian vs build yang gagal. Hal-hal npm/ng berjalan dengan baik.
Semuanya bekerja sepenuhnya di sistem saya.
https://developercommunity.visualstudio.com/content/problem/855096/npm-ng-suddenly-not-working-conflict-pluginconfig.html

Jika ini terjadi dengan modul apa pun yang menggunakan TypeScript 3.7.2, Anda dapat menggunakan pernyataan "sebagai".

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

Atau Anda dapat mengekspor modul sebagai default sehingga Anda dapat menggunakan nama variabel yang berbeda

@anicarrr , Bisakah Anda memberikan contoh untuk jawaban kedua yang Anda berikan?

Mungkin bukan solusi terbaik untuk semua orang, tetapi Anda harus dapat memperbaikinya dengan menambahkan yang berikut ini di tsconfig.json:

"skipLibCheck": true

Jika ini terjadi dengan modul apa pun yang menggunakan TypeScript 3.7.2, Anda dapat menggunakan pernyataan "sebagai".
import { module as otherModuleName } from "./module"
Atau Anda dapat mengekspor modul sebagai default sehingga Anda dapat menggunakan nama variabel yang berbeda

@anicarrr , Bisakah Anda memberikan contoh untuk jawaban kedua yang Anda berikan?

Maksud saya mengekspor seperti:

export default myModule

jadi ketika Anda mengimpornya, Anda bisa menggunakan nama apa pun yang Anda inginkan, seperti:

import whateverName from myModule

Ini diperbaiki di https://github.com/angular/protractor/pull/5326 . Kami sedang bekerja untuk mendapatkan rilis patch.

fyi: sementara itu menggunakan opsi kompiler tsc "skipLibCheck": true harus menjadi solusi yang memadai bagi mereka yang terpengaruh oleh masalah ini.

Hai pak!

Laporan bug
Saya mendapatkan kesalahan berikut di bawah ini:

GALAT di [at-loader] ./node_modules/protractor/built/index.d.ts:5:10
TS2440: Deklarasi impor bertentangan dengan deklarasi lokal 'PluginConfig'.

GALAT di [at-loader] ./node_modules/protractor/built/index.d.ts:5:24
TS2440: Deklarasi impor bertentangan dengan deklarasi lokal 'ProtractorPlugin'.

  • Versi Simpul: 10.5.0
  • Versi Busur Derajat: ~5.1.2
  • Versi Sudut: ^4.2.4
  • Peramban: any
  • Sistem Operasi dan Versi Windows 10
  • File konfigurasi busur derajat Anda

const { SpecReporter } = require('jasmine-spec-reporter');

export.config = {
allScriptsTimeout: 11000,
spesifikasi: [
'./e2e/ */ .e2e-spec.ts'
],
kemampuan: {
'nama browser': 'chrome'
},
DirectConnect: benar,
baseUrl: ' http://localhost :4200/',
kerangka: 'melati',
jasmineNodeOpts: {
showColors: benar,
defaultTimeoutInterval: 30000,
cetak: fungsi() {}
},
siapsiap() {
membutuhkan('ts-node').register({
proyek: 'e2e/tsconfig.e2e.json'
});
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
}
};

  • Langkah-langkah untuk mereproduksi bug - npm run build gagal

Permintaan fitur
Tolong bantu saya untuk menyelesaikannya

Hai SachinBN,

Anda perlu mengubah versi TypeScript yang diinstal di proyek. Gunakan perintah di bawah ini di terminal Kode VS untuk mengubah versi (tanpa tanda kutip).

"NPM install -g [email protected] "

Setelah selesai, silakan periksa versi TypeScript di proyek Anda di VS Code, menggunakan perintah di bawah ini

"tsc -v"

Ini harus menunjukkan 3.6.2. Silakan gunakan versi yang sama dalam file package.json. Setelah versi diubah menjadi 3.6.2, jalankan "tsc" lagi, kesalahan akan hilang.

Semoga ini membantu.

Salam,

ameya

Saya memiliki masalah ini di aplikasi sudut saya dan saya dapat menyelesaikannya dengan menghapus pernyataan impor busur derajat yang secara otomatis ditambahkan oleh saran.

Suka:

impor { elemen } dari 'busur derajat'
impor { janji } dari 'busur derajat'

Hapus saja, saya akan berjalan seperti yang diharapkan.
Milik saya berfungsi, saya harap kode Anda juga berfungsi.

Salam,
Nishit Zinzuvadiya

npx tsc -v
Version 3.8.3

Node dan NPM terbaru.

File saya

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;

Dan saya memiliki kesalahan yang sama

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

Terkadang kompiler TypeScript hanya menyalahkan kesalahan pada senjata merokok orang lain.

Saya mendapat pesan kesalahan persis OP hari ini saat mengerjakan file uji unit .spec.ts. Karena saya tidak membutuhkan Busur Derajat untuk pengujian unit, saya untuk sementara mencopotnya dengan npm uninstall protractor yang kemudian menyebabkan TypeScript mengeluarkan kesalahan yang sebenarnya:

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

Penyebabnya adalah Visual Studio Code secara misterius membuat pernyataan impor otomatis ini alih-alih yang normal, import { EventEmitter } from '@angular/core';

masih punya ini di 4.0.2.. hmmm

Saya memiliki masalah ini di aplikasi sudut saya dan saya dapat menyelesaikannya dengan menghapus pernyataan impor busur derajat yang secara otomatis ditambahkan oleh saran.

Suka:

impor { elemen } dari 'busur derajat'
impor { janji } dari 'busur derajat'

Hapus saja, saya akan berjalan seperti yang diharapkan.
Milik saya berfungsi, saya harap kode Anda juga berfungsi.

Salam,
Nishit Zinzuvadiya

Bagi saya itu adalah impor otomatis VSCode, yang mengimpor EventEmitter dari Protractor alih-alih @angular/core . Memperbaiki ini memperbaiki masalah bagi saya.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat