どうも!
バグレポート
以下のエラーが発生します:
[at-loader]のエラー./node_modules/protractor/built/index.d.ts:5:10
TS2440:インポート宣言が「PluginConfig」のローカル宣言と競合しています。
[at-loader]のエラー./node_modules/protractor/built/index.d.ts:5:24
TS2440:インポート宣言が「ProtractorPlugin」のローカル宣言と競合しています。
10.5.0
~5.1.2
^4.2.4
any
Windows 10
const {SpecReporter} = require( 'jasmine-spec-reporter');
exports.config = {
allScriptsTimeout:11000、
仕様:[
'./e2e/ * / .e2e-spec.ts'
]、
機能:{
'browserName': 'chrome'
}、
directConnect:true、
baseUrl: ' http:// localhost :4200 /'、
フレームワーク: 'ジャスミン'、
jasmineNodeOpts:{
showColors:true、
defaultTimeoutInterval:30000、
印刷:function(){}
}、
onPrepare(){
require( 'ts-node')。register({
プロジェクト: 'e2e / tsconfig.e2e.json'
});
jasmine.getEnv()。addReporter(new SpecReporter({spec:{displayStacktrace:true}}));
}
};
機能リクエスト
解決するのを手伝ってください
今日の時点で、同じ問題が発生しています(Protractor5.4.2とAngular8で)
ここで分度器5.4.2とAngular8で同じ問題が発生します
Typescriptバージョンをアップグレードしているときに、今日これに遭遇しました。 私たちはAngularJSを使用しており、Protractor5.4.1と5.4.2の両方で発生します。 Typescript 3.6.4(3.6.x)ではエラーは発生しませんが、Typescript 3.7.2(3.7.x)では発生します。 私はそれがこの重大な変更に関連していると信じています: https ://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#local -and-imported-type-declarations-now-conflict
修正してください。 ヌルの合体が必要です! :)
ここでも同じ問題があります。 私のプロジェクトは分度器5.4.2にあり、TypeScript3.7に移行したいと思います。
修正をバックポートするのは素晴らしいことです(それは確かに機能します):
89fbf75d4103db2cd20fd0c1c4ca7efebc52c049
37bef24331c1012bfc2cc7d3fa259a00e69bd192
マスターから5.4.2へ
5.4.2は、npmjs.comで入手できる最新バージョンです。
6.0.0には重大な変更が含まれているため、私のプロジェクトには適していません。
(https://github.com/angular/protractor/blob/6.0.0/CHANGELOG.md)
CC: @sandersn @heathkit
#5325の複製
編集:私はAngularチームではなくTypescriptチームで働いていることを明確にする必要があります。 新しい5. *バージョンを公開しようとすると言ったチームメンバーと話をしましたが、プロセスは簡単ではないと思います。
今日、typescriptバージョンを3.7.xから3.6.xにダウングレードしました。正常に動作しています。 mattcaseyありがとう
@sandersnを明確にしていただきありがとうございます。 それが私の次の質問になるでしょう。 フロー制御に依存せず、6.0.0に更新しようとしましたが、公開されたパッケージでさえ、まだ修正されていないようです。 チームの誰かがここにコメントできれば素晴らしいと思います。私たちは数日、数か月、またはそれ以上話していますか?
編集:私は助けを申し出ますが、新しいバージョンをリリースする際のホールドアップは「ちょうど」のようです:)
編集2:システムの残りの部分がTS 3.7に移行したので、私にとって2つの悪のうちの小さい方は、tsconfigのカスタム.d.tsファイルにリンクすることによって分度器からのタイプをオーバーライドすることでした: https:// www.typescriptlang.org/docs/handbook/module-resolution.html#path -mapping
@mattcasey現在の修正がどのように機能するかをもう少し詳しく説明して
タイプ/ノードの依存関係を更新しますnpm install -g @types/node@8
タイプ/ノードがdevDependenciesとdependenciesの両方にリストされていることを確認してください
"dependencies": {
...
"@types/node": "^8.10.59",
...
},
"devDependencies": {
...
"@types/node": "^8.10.59",
...
}
typescript 3.7.2を使用するモジュールでこれが発生した場合は、「as」ステートメントを使用できます。
import { module as otherModuleName } from "./module"
または、モジュールをデフォルトとしてエクスポートして、別の変数名を使用することもできます
今日、typescriptバージョンを3.7.xから3.6.xにダウングレードしました。正常に動作しています。 mattcaseyありがとう
それは「typescript」:「〜3.6」をファイルpackage.jsonに置き、ターミナルで「npminstall」を実行しました。 ありがとう!
同じ問題で、3.6.4にダウングレードすると機能しました。
ここで同じ問題が、私がしなければならなかったnpm uninstall -g typescript
のローカルバージョンようにtsc
優先されます。 代わりにPATH
をいじることができた…
@ woppa684私の修正は、基本的に、分度器用に独自の型を作成し、Node_modules内の型を無視するようにTypescriptに指示することです。 私のprotractor.d.ts
(私のプロジェクトのtest-e2e/protractor.d.ts
ます)ファイルは次のようになります。
// 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;
}
そして、tsconfigで:
{
...
"compilerOptions": {
...
"paths": {
"protractor": ["test-e2e/protractor.d.ts"]
}
}
}
これにより、分度器メソッドがタイプセーフではなくなるという欠点を伴うTypescript3.7を使用できます。
私たちが使用した別の解決策は、 https://github.com/angular/protractor/pull/5326/の修正を使用して分度器の変更されたビルドを作成。
分度器の代わりに一時的に使用します
// package.json
"protractor": "tomyam1/protractor-ts3.7-fix"
AngularのDevOpsでこの問題が発生しています。 これはちょうど起こり始めました。 私は戻って、package.jsonとpackage-lock.jsonを、それが機能することを知ったときから取得しました。
Angularをアップグレードしました。 私はいくつかの異なるtypescriptバージョンを試しました。 ローカルコンピューターでは機能しますが、devopsでは機能しません。 失敗しているのはvsビルド部分だけです。 npm / ngのものは問題なく動作します。
すべてが私のシステムで完全に機能します。
https://developercommunity.visualstudio.com/content/problem/855096/npm-ng-suddenly-not-working-conflict-pluginconfig.html
typescript 3.7.2を使用するモジュールでこれが発生した場合は、「as」ステートメントを使用できます。
import { module as otherModuleName } from "./module"
または、モジュールをデフォルトとしてエクスポートして、別の変数名を使用することもできます
@anicarrr 、提供された2番目の回答の例を教えてください。
すべての人にとって最善の解決策ではないかもしれませんが、tsconfig.jsonに以下を追加することでこれを修正できるはずです。
"skipLibCheck": true
typescript 3.7.2を使用するモジュールでこれが発生した場合は、「as」ステートメントを使用できます。
import { module as otherModuleName } from "./module"
または、モジュールをデフォルトとしてエクスポートして、別の変数名を使用することもできます@anicarrr 、提供された2番目の回答の例を教えてください。
私は次のようにエクスポートすることを意味します:
export default myModule
したがって、インポートするときは、次のような任意の名前を使用できます。
import whateverName from myModule
fyi:それまでの間、tscコンパイラオプション"skipLibCheck": true
することで、この問題の影響を受けるユーザーにとって十分な回避策になるはずです。
どうも!
バグレポート
以下のエラーが発生します:[at-loader]のエラー./node_modules/protractor/built/index.d.ts:5:10
TS2440:インポート宣言が「PluginConfig」のローカル宣言と競合しています。
[at-loader]のエラー./node_modules/protractor/built/index.d.ts:5:24
TS2440:インポート宣言が「ProtractorPlugin」のローカル宣言と競合しています。
- ノードバージョン:
10.5.0
- 分度器バージョン:
~5.1.2
- Angularバージョン:
^4.2.4
- ブラウザ:
any
- オペレーティングシステムとバージョン
Windows 10
- 分度器構成ファイル
const {SpecReporter} = require( 'jasmine-spec-reporter');
exports.config = {
allScriptsTimeout:11000、
仕様:[
'./e2e/ * / .e2e-spec.ts'
]、
機能:{
'browserName': 'chrome'
}、
directConnect:true、
baseUrl: ' http:// localhost :4200 /'、
フレームワーク: 'ジャスミン'、
jasmineNodeOpts:{
showColors:true、
defaultTimeoutInterval:30000、
印刷:function(){}
}、
onPrepare(){
require( 'ts-node')。register({
プロジェクト: 'e2e / tsconfig.e2e.json'
});
jasmine.getEnv()。addReporter(new SpecReporter({spec:{displayStacktrace:true}}));
}
};
- バグを再現する手順-npmrun buildfail
機能リクエスト
解決するのを手伝ってください
こんにちはSachinBN、
プロジェクトにインストールされているTypescriptのバージョンを変更する必要があります。 バージョンを変更するには、VS Codeターミナルで以下のコマンドを使用します(引用符なし)。
"npm install -g [email protected] "
完了したら、以下のコマンドを使用して、VSCodeでプロジェクトのtypescriptのバージョンを確認してください
「tsc-v」
3.6.2と表示されます。 package.jsonファイルで同じバージョンを使用してください。 バージョンが3.6.2に変更されると、「tsc」を再度実行すると、エラーがなくなるはずです。
お役に立てれば。
よろしく、
あめや
私はAngularアプリでこの問題を抱えていましたが、提案によって自動的に追加される分度器のインポートステートメントを削除することで解決できます。
お気に入り:
'分度器'から{要素}をインポートします
'分度器'から{promise}をインポートします
それらを削除するだけで、期待どおりに実行されます。
私のコードは機能しました。あなたのコードも機能することを願っています。
よろしく、
ニシット・ジンズヴァディヤ
npx tsc -v
Version 3.8.3
最新のノードとNPM。
私のファイル
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;
そして、私は同じエラーがあります
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');
TypeScriptコンパイラは、他の誰かの喫煙銃のエラーを非難することがあります。
今日、.spec.tsユニットテストファイルで作業しているときに、OPの正確なエラーメッセージが表示されました。 ユニットテストにProtractorは必要なかったので、一時的にnpm uninstall protractor
でアンインストールしました
ERROR in src/app/.../...spec.ts:12:30 - error TS2307: Cannot find module 'protractor'.
12 import { EventEmitter } from 'protractor';
原因は、Visual StudioCodeが通常のimport { EventEmitter } from '@angular/core';
代わりにこの自動インポートステートメントを不可解に作成したこと
まだ4.0.2でこれを手に入れました。うーん
私はAngularアプリでこの問題を抱えていましたが、提案によって自動的に追加される分度器のインポートステートメントを削除することで解決できます。
お気に入り:
'分度器'から{要素}をインポートします
'分度器'から{promise}をインポートしますそれらを削除するだけで、期待どおりに実行されます。
私のコードは機能しました。あなたのコードも機能することを願っています。よろしく、
ニシット・ジンズヴァディヤ
私にとっては、 @angular/core
ではなくProtractor
からEventEmitter
をインポートしたのは、VSCodeの自動インポート@angular/core
。 これを修正すると、問題が修正されました。
最も参考になるコメント
すべての人にとって最善の解決策ではないかもしれませんが、tsconfig.jsonに以下を追加することでこれを修正できるはずです。