Typescript - 一切都有重复的标识符
Typescript - Duplicate Identifier on everything
昨天我 运行 在使用我的 NS NG2 应用程序时遇到了一些问题。每当我尝试 运行 命令 - tns livesync android --watch 或任何其他要构建的命令时。我收到一长串错误。以下是此错误的一小段。
app/node_modules/typescript/lib/lib.es6.d.ts(20054,15): error TS2451: Cannot red
eclare block-scoped variable 'name'.
app/node_modules/typescript/lib/lib.es6.d.ts(20328,6): error TS2300: Duplicate i
dentifier 'AAGUID'.
app/node_modules/typescript/lib/lib.es6.d.ts(20329,6): error TS2300: Duplicate i
dentifier 'AlgorithmIdentifier'.
app/node_modules/typescript/lib/lib.es6.d.ts(20330,6): error TS2300: Duplicate i
dentifier 'ConstrainBoolean'.
app/node_modules/typescript/lib/lib.es6.d.ts(20331,6): error TS2300: Duplicate i
dentifier 'ConstrainDOMString'.
app/node_modules/typescript/lib/lib.es6.d.ts(20332,6): error TS2300: Duplicate i
dentifier 'ConstrainDouble'.
app/node_modules/typescript/lib/lib.es6.d.ts(20333,6): error TS2300: Duplicate i
dentifier 'ConstrainLong'.
app/node_modules/typescript/lib/lib.es6.d.ts(20334,6): error TS2300: Duplicate i
dentifier 'CryptoOperationData'.
app/node_modules/typescript/lib/lib.es6.d.ts(20335,6): error TS2300: Duplicate i
dentifier 'GLbitfield'.
app/node_modules/typescript/lib/lib.es6.d.ts(20336,6): error TS2300: Duplicate i
dentifier 'GLboolean'.
app/node_modules/typescript/lib/lib.es6.d.ts(20337,6): error TS2300: Duplicate i
dentifier 'GLbyte'.
app/node_modules/typescript/lib/lib.es6.d.ts(20338,6): error TS2300: Duplicate i
dentifier 'GLclampf'.
app/node_modules/typescript/lib/lib.es6.d.ts(20339,6): error TS2300: Duplicate i
dentifier 'GLenum'.
app/node_modules/typescript/lib/lib.es6.d.ts(20340,6): error TS2300: Duplicate i
dentifier 'GLfloat'.
app/node_modules/typescript/lib/lib.es6.d.ts(20341,6): error TS2300: Duplicate i
dentifier 'GLint'.
app/node_modules/typescript/lib/lib.es6.d.ts(20342,6): error TS2300: Duplicate i
dentifier 'GLintptr'.
app/node_modules/typescript/lib/lib.es6.d.ts(20343,6): error TS2300: Duplicate i
dentifier 'GLshort'.
app/node_modules/typescript/lib/lib.es6.d.ts(20344,6): error TS2300: Duplicate i
dentifier 'GLsizei'.
app/node_modules/typescript/lib/lib.es6.d.ts(20345,6): error TS2300: Duplicate i
dentifier 'GLsizeiptr'.
app/node_modules/typescript/lib/lib.es6.d.ts(20346,6): error TS2300: Duplicate i
dentifier 'GLubyte'.
app/node_modules/typescript/lib/lib.es6.d.ts(20347,6): error TS2300: Duplicate i
dentifier 'GLuint'.
app/node_modules/typescript/lib/lib.es6.d.ts(20348,6): error TS2300: Duplicate i
dentifier 'GLushort'.
app/node_modules/typescript/lib/lib.es6.d.ts(20349,6): error TS2300: Duplicate i
dentifier 'IDBKeyPath'.
app/node_modules/typescript/lib/lib.es6.d.ts(20350,6): error TS2300: Duplicate i
dentifier 'KeyFormat'.
app/node_modules/typescript/lib/lib.es6.d.ts(20351,6): error TS2300: Duplicate i
dentifier 'KeyType'.
这只是我收到的错误中的一小部分。为了提供 soem 上下文,这发生在我开始 mac 工作时,意识到我需要做的比预期的要多。所以t运行转到我的PC上,我对PC比较熟悉。我提取了我所做的小代码更改(已经尝试撤销这些更改)并尝试构建。那是我遇到这个错误列表的时候。我将在下面列出一些可能有助于找到答案的文件。
package.json
{
"description": "AppName",
"license": "SEE LICENSE IN <your-license-filename>",
"readme": "AppName",
"repository": "myRepo",
"nativescript": {
"id": "org.nativescript.appName",
"tns-ios": {
"version": "2.4.0"
},
"tns-android": {
"version": "2.4.0"
}
},
"dependencies": {
"@angular/common": "2.1.2",
"@angular/compiler": "2.1.2",
"@angular/core": "2.1.2",
"@angular/forms": "2.1.2",
"@angular/http": "2.1.2",
"@angular/platform-browser": "2.1.2",
"@angular/platform-browser-dynamic": "2.1.2",
"@angular/platform-server": "^2.0.0",
"@angular/router": "3.1.2",
"email-validator": "^1.0.7",
"nativescript-angular": "1.1.3",
"nativescript-drop-down": "^1.3.3",
"nativescript-loading-indicator": "^2.2.1",
"nativescript-permissions": "^1.2.1",
"nativescript-plugin-firebase": "^3.7.1",
"nativescript-telerik-ui": "^1.4.1",
"nativescript-toasty": "^1.1.0",
"reflect-metadata": "~0.1.8",
"tns-core-modules": "2.4.0",
"tns-platform-declarations": "^2.0.0"
},
"devDependencies": {
"babel-traverse": "6.19.0",
"babel-types": "6.19.0",
"babylon": "6.11.0",
"lazy": "1.0.11",
"filewalker": "0.1.2",
"nativescript-dev-typescript": "^0.3.2",
"typescript": "^2.0.10",
"zone.js": "~0.6.21"
}
}
references.d.ts
/// <reference path="./node_modules/tns-core-modules/tns-core-modules.d.ts" /> Needed for autocompletion and compilation.
/// <reference path="./node_modules/nativescript-plugin-firebase/index.d.ts" />
/// <reference path="./node_modules/tns-core-modules/tns-core-modules.es6.d.ts" />
/// <reference path="./node_modules/tns-platform-declarations/ios/ios.d.ts" />
/// <reference path="./node_modules/tns-platform-declarations/android/android17.d.ts" />
/// <reference path="./node_modules/tns-platform-declarations/android/org.nativescript.widgets.d.ts" />
tsconfig.json
{
"compilerOptions": {
"module": "commonjs",
"target": "es5",
"sourceMap": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"noEmitHelpers": true,
"noEmitOnError": true,
"lib": [
"es2016"
]
},
"exclude": [
"node_modules",
"platforms"
]
}
如果我有任何其他文件 post 可能有帮助,请告诉我。我认为问题出在其中一个文件中。我已经尝试了所有我能想到的方法,但几乎没有想法。希望你们中的一个人有一些想法!提前致谢
您的其他一些文件似乎包含对 node_modules/typescript/lib/lib.es6.d.ts
和其他 .d.ts
文件的引用。我试图重现相同的错误,使用基于您的 package.json 和 tsconfig.json 的新创建项目,但无论我的配置如何,lib.es6.d.ts
从未包含在转译中.
您应该检查所有文件以查找对 node_modules
中 .d.ts
文件的引用。看起来其中一些相互冲突。
您也可以尝试删除 node_modules
目录并再次执行 tns build android
。
另外注意 - tns-platform-declarations
应该是 devDependency - 它仅用于自动完成和转译,你不需要在设备上使用它。
可能是您包含的参考文献之一正在导出 es6 类型,这与内置的 es6 类型冲突。
把引用的注释去掉,看看是否还有重复标识符的问题。
也尝试取出库:["es6"] 因为其他东西已经在导入 es6 类型。
新版本的 typescript 可以从 npm 模块加载类型,如果它们是 exports。
您可以在 compilerOptions 中设置 moduleResulotion: "node"
并使用 es6 导入来加载项目不同部分的 .d.ts 文件。
已解决 --
所以为了解决这个问题,我检查了 package.json 的每一行并查找了每个模块。检查他们最近的更新并将其设置为安装大约 20 天前最后更新的版本。为每一个。删除我的节点模块并执行 npm install 4 次后。有效。
昨天我 运行 在使用我的 NS NG2 应用程序时遇到了一些问题。每当我尝试 运行 命令 - tns livesync android --watch 或任何其他要构建的命令时。我收到一长串错误。以下是此错误的一小段。
app/node_modules/typescript/lib/lib.es6.d.ts(20054,15): error TS2451: Cannot red
eclare block-scoped variable 'name'.
app/node_modules/typescript/lib/lib.es6.d.ts(20328,6): error TS2300: Duplicate i
dentifier 'AAGUID'.
app/node_modules/typescript/lib/lib.es6.d.ts(20329,6): error TS2300: Duplicate i
dentifier 'AlgorithmIdentifier'.
app/node_modules/typescript/lib/lib.es6.d.ts(20330,6): error TS2300: Duplicate i
dentifier 'ConstrainBoolean'.
app/node_modules/typescript/lib/lib.es6.d.ts(20331,6): error TS2300: Duplicate i
dentifier 'ConstrainDOMString'.
app/node_modules/typescript/lib/lib.es6.d.ts(20332,6): error TS2300: Duplicate i
dentifier 'ConstrainDouble'.
app/node_modules/typescript/lib/lib.es6.d.ts(20333,6): error TS2300: Duplicate i
dentifier 'ConstrainLong'.
app/node_modules/typescript/lib/lib.es6.d.ts(20334,6): error TS2300: Duplicate i
dentifier 'CryptoOperationData'.
app/node_modules/typescript/lib/lib.es6.d.ts(20335,6): error TS2300: Duplicate i
dentifier 'GLbitfield'.
app/node_modules/typescript/lib/lib.es6.d.ts(20336,6): error TS2300: Duplicate i
dentifier 'GLboolean'.
app/node_modules/typescript/lib/lib.es6.d.ts(20337,6): error TS2300: Duplicate i
dentifier 'GLbyte'.
app/node_modules/typescript/lib/lib.es6.d.ts(20338,6): error TS2300: Duplicate i
dentifier 'GLclampf'.
app/node_modules/typescript/lib/lib.es6.d.ts(20339,6): error TS2300: Duplicate i
dentifier 'GLenum'.
app/node_modules/typescript/lib/lib.es6.d.ts(20340,6): error TS2300: Duplicate i
dentifier 'GLfloat'.
app/node_modules/typescript/lib/lib.es6.d.ts(20341,6): error TS2300: Duplicate i
dentifier 'GLint'.
app/node_modules/typescript/lib/lib.es6.d.ts(20342,6): error TS2300: Duplicate i
dentifier 'GLintptr'.
app/node_modules/typescript/lib/lib.es6.d.ts(20343,6): error TS2300: Duplicate i
dentifier 'GLshort'.
app/node_modules/typescript/lib/lib.es6.d.ts(20344,6): error TS2300: Duplicate i
dentifier 'GLsizei'.
app/node_modules/typescript/lib/lib.es6.d.ts(20345,6): error TS2300: Duplicate i
dentifier 'GLsizeiptr'.
app/node_modules/typescript/lib/lib.es6.d.ts(20346,6): error TS2300: Duplicate i
dentifier 'GLubyte'.
app/node_modules/typescript/lib/lib.es6.d.ts(20347,6): error TS2300: Duplicate i
dentifier 'GLuint'.
app/node_modules/typescript/lib/lib.es6.d.ts(20348,6): error TS2300: Duplicate i
dentifier 'GLushort'.
app/node_modules/typescript/lib/lib.es6.d.ts(20349,6): error TS2300: Duplicate i
dentifier 'IDBKeyPath'.
app/node_modules/typescript/lib/lib.es6.d.ts(20350,6): error TS2300: Duplicate i
dentifier 'KeyFormat'.
app/node_modules/typescript/lib/lib.es6.d.ts(20351,6): error TS2300: Duplicate i
dentifier 'KeyType'.
这只是我收到的错误中的一小部分。为了提供 soem 上下文,这发生在我开始 mac 工作时,意识到我需要做的比预期的要多。所以t运行转到我的PC上,我对PC比较熟悉。我提取了我所做的小代码更改(已经尝试撤销这些更改)并尝试构建。那是我遇到这个错误列表的时候。我将在下面列出一些可能有助于找到答案的文件。
package.json
{
"description": "AppName",
"license": "SEE LICENSE IN <your-license-filename>",
"readme": "AppName",
"repository": "myRepo",
"nativescript": {
"id": "org.nativescript.appName",
"tns-ios": {
"version": "2.4.0"
},
"tns-android": {
"version": "2.4.0"
}
},
"dependencies": {
"@angular/common": "2.1.2",
"@angular/compiler": "2.1.2",
"@angular/core": "2.1.2",
"@angular/forms": "2.1.2",
"@angular/http": "2.1.2",
"@angular/platform-browser": "2.1.2",
"@angular/platform-browser-dynamic": "2.1.2",
"@angular/platform-server": "^2.0.0",
"@angular/router": "3.1.2",
"email-validator": "^1.0.7",
"nativescript-angular": "1.1.3",
"nativescript-drop-down": "^1.3.3",
"nativescript-loading-indicator": "^2.2.1",
"nativescript-permissions": "^1.2.1",
"nativescript-plugin-firebase": "^3.7.1",
"nativescript-telerik-ui": "^1.4.1",
"nativescript-toasty": "^1.1.0",
"reflect-metadata": "~0.1.8",
"tns-core-modules": "2.4.0",
"tns-platform-declarations": "^2.0.0"
},
"devDependencies": {
"babel-traverse": "6.19.0",
"babel-types": "6.19.0",
"babylon": "6.11.0",
"lazy": "1.0.11",
"filewalker": "0.1.2",
"nativescript-dev-typescript": "^0.3.2",
"typescript": "^2.0.10",
"zone.js": "~0.6.21"
}
}
references.d.ts
/// <reference path="./node_modules/tns-core-modules/tns-core-modules.d.ts" /> Needed for autocompletion and compilation.
/// <reference path="./node_modules/nativescript-plugin-firebase/index.d.ts" />
/// <reference path="./node_modules/tns-core-modules/tns-core-modules.es6.d.ts" />
/// <reference path="./node_modules/tns-platform-declarations/ios/ios.d.ts" />
/// <reference path="./node_modules/tns-platform-declarations/android/android17.d.ts" />
/// <reference path="./node_modules/tns-platform-declarations/android/org.nativescript.widgets.d.ts" />
tsconfig.json
{
"compilerOptions": {
"module": "commonjs",
"target": "es5",
"sourceMap": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"noEmitHelpers": true,
"noEmitOnError": true,
"lib": [
"es2016"
]
},
"exclude": [
"node_modules",
"platforms"
]
}
如果我有任何其他文件 post 可能有帮助,请告诉我。我认为问题出在其中一个文件中。我已经尝试了所有我能想到的方法,但几乎没有想法。希望你们中的一个人有一些想法!提前致谢
您的其他一些文件似乎包含对 node_modules/typescript/lib/lib.es6.d.ts
和其他 .d.ts
文件的引用。我试图重现相同的错误,使用基于您的 package.json 和 tsconfig.json 的新创建项目,但无论我的配置如何,lib.es6.d.ts
从未包含在转译中.
您应该检查所有文件以查找对 node_modules
中 .d.ts
文件的引用。看起来其中一些相互冲突。
您也可以尝试删除 node_modules
目录并再次执行 tns build android
。
另外注意 - tns-platform-declarations
应该是 devDependency - 它仅用于自动完成和转译,你不需要在设备上使用它。
可能是您包含的参考文献之一正在导出 es6 类型,这与内置的 es6 类型冲突。
把引用的注释去掉,看看是否还有重复标识符的问题。
也尝试取出库:["es6"] 因为其他东西已经在导入 es6 类型。
新版本的 typescript 可以从 npm 模块加载类型,如果它们是 exports。
您可以在 compilerOptions 中设置 moduleResulotion: "node"
并使用 es6 导入来加载项目不同部分的 .d.ts 文件。
已解决 --
所以为了解决这个问题,我检查了 package.json 的每一行并查找了每个模块。检查他们最近的更新并将其设置为安装大约 20 天前最后更新的版本。为每一个。删除我的节点模块并执行 npm install 4 次后。有效。