问题
I tried to run build on an angular2 project, inside a .NET project (this part doesn't matter a lot i think).
I encounter the following error when building my project. Already tried to delete typings directory and then do typings install with no change.
Package.json
{
"name": "angular2project",
"version": "1.0.0",
"license": "MIT",
"angular-cli": {},
"scripts": {
"start": "ng serve",
"lint": "ng lint",
"test": "ng test",
"pree2e": "webdriver-manager update",
"e2e": "protractor",
"clean": "rimraf -- wwwroot",
"postclean": "ng build",
"prebuild": "npm run clean",
"build": "dotnet build",
"clean:prod": "rimraf -- wwwroot",
"postclean:prod": "ng build --prod",
"prebuild:prod": "npm run clean:prod",
"build:prod": "dotnet publish -c release"
},
"private": true,
"dependencies": {
"@angular/common": "~2.0.0",
"@angular/compiler": "~2.0.0",
"@angular/core": "~2.0.0",
"@angular/forms": "~2.0.0",
"@angular/http": "~2.0.0",
"@angular/platform-browser": "~2.0.0",
"@angular/platform-browser-dynamic": "~2.0.0",
"@angular/router": "~3.0.0",
"core-js": "^2.4.1",
"ng2-datepicker": "^1.1.1",
"rxjs": "5.0.0-beta.12",
"ts-helpers": "^1.1.1",
"zone.js": "^0.6.23"
},
"devDependencies": {
"@types/jasmine": "^2.2.30",
"@types/node": "^6.0.42",
"angular-cli": "1.0.0-beta.17",
"codelyzer": "~0.0.26",
"jasmine-core": "2.4.1",
"jasmine-spec-reporter": "2.5.0",
"karma": "1.2.0",
"karma-chrome-launcher": "^2.0.0",
"karma-cli": "^1.0.1",
"karma-firefox-launcher": "^1.0.0",
"karma-ie-launcher": "^1.0.0",
"karma-jasmine": "^1.0.2",
"karma-phantomjs-launcher": "^1.0.2",
"karma-remap-istanbul": "^0.2.1",
"karma-safari-launcher": "^1.0.0",
"protractor": "4.0.9",
"rimraf": "^2.5.4",
"ts-node": "1.2.1",
"tslint": "3.13.0",
"typescript": "2.0.2"
},
"-vs-binding": {
"BeforeBuild": [
"build"
]
}
}
Angular-cli.json
{
"project": {
"version": "1.0.0-beta.16",
"name": "angular-admin"
},
"apps": [
{
"root": "src",
"outDir": "wwwroot",
"assets": "assets",
"index": "index.html",
"main": "main.ts",
"test": "test.ts",
"tsconfig": "tsconfig.json",
"prefix": "app",
"mobile": false,
"styles": [
"styles.css"
],
"scripts": [],
"environments": {
"source": "environments/environment.ts",
"dev": "environments/environment.ts",
"prod": "environments/environment.prod.ts"
}
}
],
"addons": [],
"packages": [],
"e2e": {
"protractor": {
"config": "./protractor.conf.js"
}
},
"test": {
"karma": {
"config": "./karma.conf.js"
}
},
"defaults": {
"styleExt": "css",
"prefixInterfaces": false
}
}
Error Output
1>------ Build started: Project: Angular2, Configuration: Debug Any CPU ------
1>C:\Angular2\e2e\base.po.ts(1,10): error TS2305: Build:Module ''protractor'' has no exported member 'browser'.
1>C:\Angular2\e2e\base.po.ts(1,19): error TS2305: Build:Module ''protractor'' has no exported member 'element'.
1>C:\Angular2\e2e\base.po.ts(1,28): error TS2305: Build:Module ''protractor'' has no exported member 'by'.
1>C:\Angular2\e2e\base.po.ts(1,32): error TS2305: Build:Module ''protractor'' has no exported member 'ProtractorBrowser'.
1>C:\Angular2\node_modules\@types\jasmine\index.d.ts(74,9): error TS2375: Build:Duplicate number index signature.
1>C:\Angular2\node_modules\@types\jasmine\index.d.ts(129,9): error TS2374: Build:Duplicate string index signature.
1>C:\Angular2\node_modules\@types\node\index.d.ts(70,5): error TS2403: Build:Subsequent variable declarations must have the same type. Variable 'main' must be of type 'any', but here has type 'NodeModule'.
1>C:\Angular2\node_modules\@types\node\index.d.ts(81,5): error TS2403: Build:Subsequent variable declarations must have the same type. Variable 'parent' must be of type 'any', but here has type 'NodeModule'.
1>C:\Angular2\node_modules\@types\node\index.d.ts(82,5): error TS2403: Build:Subsequent variable declarations must have the same type. Variable 'children' must be of type 'any[]', but here has type 'NodeModule[]'.
1>C:\Angular2\node_modules\@types\node\index.d.ts(102,6): error TS2300: Build:Duplicate identifier 'BufferEncoding'.
1>C:\Angular2\node_modules\@types\node\index.d.ts(553,26): error TS2300: Build:Duplicate identifier 'Buffer'.
1>C:\Angular2\node_modules\@types\node\index.d.ts(553,50): error TS2300: Build:Duplicate identifier 'SlowBuffer'.
1>C:\Angular2\node_modules\@types\node\index.d.ts(597,5): error TS2309: Build:An export assignment cannot be used in a module with other exported elements.
1>C:\Angular2\node_modules\@types\node\index.d.ts(742,18): error TS2300: Build:Duplicate identifier 'Agent'.
1>C:\Angular2\node_modules\@types\node\index.d.ts(797,9): error TS2403: Build:Subsequent variable declarations must have the same type. Variable 'addressType' must be of type 'string', but here has type 'number | "udp4" | "udp6"'.
1>C:\Angular2\node_modules\@types\node\index.d.ts(800,18): error TS2300: Build:Duplicate identifier 'Worker'.
1>C:\Angular2\node_modules\@types\node\index.d.ts(1281,9): error TS2403: Build:Subsequent variable declarations must have the same type. Variable 'SNICallback' must be of type '(servername: string) => any', but here has type '(servername: string, cb: (err: Error, ctx: SecureContext) => any) => any'.
1>C:\Angular2\node_modules\@types\node\index.d.ts(1481,17): error TS2300: Build:Duplicate identifier 'CompleterResult'.
1>C:\Angular2\node_modules\@types\node\index.d.ts(1518,18): error TS2300: Build:Duplicate identifier 'Script'.
1>C:\Angular2\node_modules\@types\node\index.d.ts(2770,16): error TS2403: Build:Subsequent variable declarations must have the same type. Variable 'StringDecoder' must be of type 'new (encoding: string) => NodeStringDecoder', but here has type 'new (encoding?: string) => NodeStringDecoder'.
1>C:\Angular2\node_modules\@types\node\index.d.ts(2821,18): error TS2300: Build:Duplicate identifier 'TLSSocket'.
1>C:\Angular2\node_modules\@types\node\index.d.ts(3018,9): error TS2403: Build:Subsequent variable declarations must have the same type. Variable 'pfx' must be of type 'any', but here has type 'string | Buffer[]'.
1>C:\Angular2\node_modules\@types\node\index.d.ts(3019,9): error TS2403: Build:Subsequent variable declarations must have the same type. Variable 'key' must be of type 'any', but here has type 'string | any[] | string[] | Buffer'.
1>C:\Angular2\node_modules\@types\node\index.d.ts(3021,9): error TS2403: Build:Subsequent variable declarations must have the same type. Variable 'cert' must be of type 'any', but here has type 'string | string[] | Buffer | Buffer[]'.
1>C:\Angular2\node_modules\@types\node\index.d.ts(3022,9): error TS2403: Build:Subsequent variable declarations must have the same type. Variable 'ca' must be of type 'any', but here has type 'string | string[] | Buffer | Buffer[]'.
1>C:\Angular2\node_modules\@types\node\index.d.ts(3023,9): error TS2403: Build:Subsequent variable declarations must have the same type. Variable 'crl' must be of type 'any', but here has type 'string | string[]'.
1>C:\Angular2\node_modules\@types\node\index.d.ts(3025,9): error TS2403: Build:Subsequent variable declarations must have the same type. Variable 'honorCipherOrder' must be of type 'any', but here has type 'boolean'.
1>C:\Angular2\node_modules\@types\node\index.d.ts(3028,9): error TS2403: Build:Subsequent variable declarations must have the same type. Variable 'NPNProtocols' must be of type 'any', but here has type 'string[] | Buffer'.
1>C:\Angular2\node_modules\@types\node\index.d.ts(3029,9): error TS2403: Build:Subsequent variable declarations must have the same type. Variable 'SNICallback' must be of type '(servername: string) => any', but here has type '(servername: string, cb: (err: Error, ctx: SecureContext) => any) => any'.
1>C:\Angular2\node_modules\@types\node\index.d.ts(3045,9): error TS2403: Build:Subsequent variable declarations must have the same type. Variable 'key' must be of type 'string | Buffer', but here has type 'string | string[] | Buffer | Buffer[]'.
1>C:\Angular2\node_modules\@types\node\index.d.ts(3047,9): error TS2403: Build:Subsequent variable declarations must have the same type. Variable 'cert' must be of type 'string | Buffer', but here has type 'string | string[] | Buffer | Buffer[]'.
1>C:\Angular2\node_modules\@types\node\index.d.ts(3048,9): error TS2403: Build:Subsequent variable declarations must have the same type. Variable 'ca' must be of type '(string | Buffer)[]', but here has type 'string | Buffer | (string | Buffer)[]'.
1>C:\Angular2\node_modules\@types\node\index.d.ts(3287,9): error TS2403: Build:Subsequent variable declarations must have the same type. Variable 'padding' must be of type 'any', but here has type 'number'.
1>C:\Angular2\node_modules\@types\node\index.d.ts(3292,9): error TS2403: Build:Subsequent variable declarations must have the same type. Variable 'padding' must be of type 'any', but here has type 'number'.
1>C:\Angular2\node_modules\@types\node\index.d.ts(3550,5): error TS2309: Build:An export assignment cannot be used in a module with other exported elements.
1>C:\Angular2\node_modules\@types\node\index.d.ts(3633,5): error TS2300: Build:Duplicate identifier 'export='.
1>C:\Angular2\node_modules\@types\node\index.d.ts(3655,18): error TS2300: Build:Duplicate identifier 'Domain'.
1>C:\Angular2\node_modules\protractor\built\browser.d.ts(2,76): error TS2305: Build:Module ''selenium-webdriver'' has no exported member 'Options'.
1>C:\Angular2\node_modules\protractor\built\browser.d.ts(2,116): error TS2305: Build:Module ''selenium-webdriver'' has no exported member 'TargetLocator'.
1>C:\Angular2\node_modules\protractor\built\locators.d.ts(4,39): error TS2304: Build:Cannot find name 'By'.
1>C:\Angular2\node_modules\protractor\built\locators.d.ts(5,27): error TS2304: Build:Cannot find name 'By'.
1>C:\Angular2\node_modules\protractor\built\locators.d.ts(6,25): error TS2304: Build:Cannot find name 'By'.
1>C:\Angular2\node_modules\protractor\built\locators.d.ts(7,37): error TS2304: Build:Cannot find name 'By'.
1>C:\Angular2\node_modules\protractor\built\locators.d.ts(8,25): error TS2304: Build:Cannot find name 'By'.
1>C:\Angular2\node_modules\protractor\built\locators.d.ts(9,29): error TS2304: Build:Cannot find name 'By'.
1>C:\Angular2\node_modules\protractor\built\locators.d.ts(10,47): error TS2304: Build:Cannot find name 'By'.
1>C:\Angular2\node_modules\protractor\built\locators.d.ts(11,35): error TS2304: Build:Cannot find name 'By'.
1>C:\Angular2\node_modules\protractor\built\locators.d.ts(12,31): error TS2304: Build:Cannot find name 'By'.
1>C:\Angular2\src\app\app.service.ts(2,26): error TS2307: Build:Cannot find module 'angular2-hmr'.
1>C:\Angular2\src\main.browser.ts(1,10): error TS2305: Build:Module '"C:/Angular2/node_modules/@angular/platform-browser-dynamic/index"' has no exported member 'browserDynamicPlatform'.
1>C:\Angular2\typings\globals\node\index.d.ts(78,6): error TS2300: Build:Duplicate identifier 'BufferEncoding'.
1>C:\Angular2\typings\globals\node\index.d.ts(503,9): error TS2502: Build:'BuffType' is referenced directly or indirectly in its own type annotation.
1>C:\Angular2\typings\globals\node\index.d.ts(504,9): error TS2502: Build:'SlowBuffType' is referenced directly or indirectly in its own type annotation.
1>C:\Angular2\typings\globals\node\index.d.ts(505,26): error TS2300: Build:Duplicate identifier 'Buffer'.
1>C:\Angular2\typings\globals\node\index.d.ts(505,50): error TS2300: Build:Duplicate identifier 'SlowBuffer'.
1>C:\Angular2\typings\globals\node\index.d.ts(567,22): error TS2320: Build:Interface 'Server' cannot simultaneously extend types 'EventEmitter' and 'Server'.
1>C:\Angular2\typings\globals\node\index.d.ts(567,22): error TS2320: Build:Interface 'Server' cannot simultaneously extend types 'EventEmitter' and 'Server'.
1>C:\Angular2\typings\globals\node\index.d.ts(567,22): error TS2320: Build:Interface 'Server' cannot simultaneously extend types 'EventEmitter' and 'Server'.
1>C:\Angular2\typings\globals\node\index.d.ts(567,22): error TS2320: Build:Interface 'Server' cannot simultaneously extend types 'EventEmitter' and 'Server'.
1>C:\Angular2\typings\globals\node\index.d.ts(567,22): error TS2320: Build:Interface 'Server' cannot simultaneously extend types 'EventEmitter' and 'Server'.
1>C:\Angular2\typings\globals\node\index.d.ts(567,22): error TS2320: Build:Interface 'Server' cannot simultaneously extend types 'EventEmitter' and 'Server'.
1>C:\Angular2\typings\globals\node\index.d.ts(567,22): error TS2320: Build:Interface 'Server' cannot simultaneously extend types 'EventEmitter' and 'Server'.
1>C:\Angular2\typings\globals\node\index.d.ts(578,22): error TS2320: Build:Interface 'ServerResponse' cannot simultaneously extend types 'EventEmitter' and 'Writable'.
1>C:\Angular2\typings\globals\node\index.d.ts(578,22): error TS2320: Build:Interface 'ServerResponse' cannot simultaneously extend types 'EventEmitter' and 'Writable'.
1>C:\Angular2\typings\globals\node\index.d.ts(578,22): error TS2320: Build:Interface 'ServerResponse' cannot simultaneously extend types 'EventEmitter' and 'Writable'.
1>C:\Angular2\typings\globals\node\index.d.ts(578,22): error TS2320: Build:Interface 'ServerResponse' cannot simultaneously extend types 'EventEmitter' and 'Writable'.
1>C:\Angular2\typings\globals\node\index.d.ts(578,22): error TS2320: Build:Interface 'ServerResponse' cannot simultaneously extend types 'EventEmitter' and 'Writable'.
1>C:\Angular2\typings\globals\node\index.d.ts(578,22): error TS2320: Build:Interface 'ServerResponse' cannot simultaneously extend types 'EventEmitter' and 'Writable'.
1>C:\Angular2\typings\globals\node\index.d.ts(578,22): error TS2320: Build:Interface 'ServerResponse' cannot simultaneously extend types 'EventEmitter' and 'Writable'.
1>C:\Angular2\typings\globals\node\index.d.ts(606,22): error TS2320: Build:Interface 'ClientRequest' cannot simultaneously extend types 'EventEmitter' and 'Writable'.
1>C:\Angular2\typings\globals\node\index.d.ts(606,22): error TS2320: Build:Interface 'ClientRequest' cannot simultaneously extend types 'EventEmitter' and 'Writable'.
1>C:\Angular2\typings\globals\node\index.d.ts(606,22): error TS2320: Build:Interface 'ClientRequest' cannot simultaneously extend types 'EventEmitter' and 'Writable'.
1>C:\Angular2\typings\globals\node\index.d.ts(606,22): error TS2320: Build:Interface 'ClientRequest' cannot simultaneously extend types 'EventEmitter' and 'Writable'.
1>C:\Angular2\typings\globals\node\index.d.ts(606,22): error TS2320: Build:Interface 'ClientRequest' cannot simultaneously extend types 'EventEmitter' and 'Writable'.
1>C:\Angular2\typings\globals\node\index.d.ts(606,22): error TS2320: Build:Interface 'ClientRequest' cannot simultaneously extend types 'EventEmitter' and 'Writable'.
1>C:\Angular2\typings\globals\node\index.d.ts(606,22): error TS2320: Build:Interface 'ClientRequest' cannot simultaneously extend types 'EventEmitter' and 'Writable'.
1>C:\Angular2\typings\globals\node\index.d.ts(632,22): error TS2320: Build:Interface 'IncomingMessage' cannot simultaneously extend types 'EventEmitter' and 'Readable'.
1>C:\Angular2\typings\globals\node\index.d.ts(632,22): error TS2320: Build:Interface 'IncomingMessage' cannot simultaneously extend types 'EventEmitter' and 'Readable'.
1>C:\Angular2\typings\globals\node\index.d.ts(632,22): error TS2320: Build:Interface 'IncomingMessage' cannot simultaneously extend types 'EventEmitter' and 'Readable'.
1>C:\Angular2\typings\globals\node\index.d.ts(632,22): error TS2320: Build:Interface 'IncomingMessage' cannot simultaneously extend types 'EventEmitter' and 'Readable'.
1>C:\Angular2\typings\globals\node\index.d.ts(632,22): error TS2320: Build:Interface 'IncomingMessage' cannot simultaneously extend types 'EventEmitter' and 'Readable'.
1>C:\Angular2\typings\globals\node\index.d.ts(632,22): error TS2320: Build:Interface 'IncomingMessage' cannot simultaneously extend types 'EventEmitter' and 'Readable'.
1>C:\Angular2\typings\globals\node\index.d.ts(632,22): error TS2320: Build:Interface 'IncomingMessage' cannot simultaneously extend types 'EventEmitter' and 'Readable'.
1>C:\Angular2\typings\globals\node\index.d.ts(682,18): error TS2300: Build:Duplicate identifier 'Agent'.
1>C:\Angular2\typings\globals\node\index.d.ts(727,18): error TS2300: Build:Duplicate identifier 'Worker'.
1>C:\Angular2\typings\globals\node\index.d.ts(980,22): error TS2300: Build:Duplicate identifier 'CompleterResult'.
1>C:\Angular2\typings\globals\node\index.d.ts(1020,18): error TS2300: Build:Duplicate identifier 'Script'.
1>C:\Angular2\typings\globals\node\index.d.ts(1298,22): error TS2320: Build:Interface 'Server' cannot simultaneously extend types 'Socket' and 'EventEmitter'.
1>C:\Angular2\typings\globals\node\index.d.ts(1861,18): error TS2300: Build:Duplicate identifier 'TLSSocket'.
1>C:\Angular2\typings\globals\node\index.d.ts(2159,18): error TS2420: Build:Class 'Readable' incorrectly implements interface 'ReadableStream'.
1>C:\Angular2\typings\globals\node\index.d.ts(2196,18): error TS2420: Build:Class 'Duplex' incorrectly implements interface 'ReadWriteStream'.
1>C:\Angular2\typings\globals\node\index.d.ts(2210,18): error TS2420: Build:Class 'Transform' incorrectly implements interface 'ReadWriteStream'.
1>C:\Angular2\typings\globals\node\index.d.ts(2301,5): error TS2300: Build:Duplicate identifier 'export='.
1>C:\Angular2\typings\globals\node\index.d.ts(2323,18): error TS2300: Build:Duplicate identifier 'Domain'. ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
回答1:
Too long for a comment:
I just took a like at an angular-cli package.json, and I see some differences. Note the import of @angular/compiler-cli. It's a guess, but "compiler" and all your problems with types could be related. Maybe your versions are old/off (I see in your script @angular/compiler instead of compiler-cli, etc).
(Changed post to include the whole package.json contents):
{
"name": "my-website",
"version": "0.0.0",
"license": "MIT",
"angular-cli": {},
"scripts": {
"start": "ng serve",
"lint": "tslint \"src/**/*.ts\"",
"test": "ng test",
"pree2e": "webdriver-manager update",
"e2e": "protractor"
},
"private": true,
"dependencies": {
"@angular/common": "^2.1.0",
"@angular/compiler": "^2.1.0",
"@angular/core": "^2.1.0",
"@angular/forms": "^2.1.0",
"@angular/http": "^2.1.0",
"@angular/platform-browser": "^2.1.0",
"@angular/platform-browser-dynamic": "^2.1.0",
"@angular/router": "^3.1.0",
"core-js": "^2.4.1",
"rxjs": "5.0.0-beta.12",
"ts-helpers": "^1.1.1",
"zone.js": "^0.6.23"
},
"devDependencies": {
"@angular/compiler-cli": "^2.1.0",
"@types/jasmine": "^2.2.30",
"@types/node": "^6.0.42",
"angular-cli": "1.0.0-beta.20-4",
"codelyzer": "~1.0.0-beta.3",
"jasmine-core": "2.4.1",
"jasmine-spec-reporter": "2.5.0",
"karma": "1.2.0",
"karma-chrome-launcher": "^2.0.0",
"karma-cli": "^1.0.1",
"karma-jasmine": "^1.0.2",
"karma-remap-istanbul": "^0.2.1",
"protractor": "4.0.9",
"ts-node": "1.2.1",
"tslint": "3.13.0",
"typescript": "~2.0.3",
"webdriver-manager": "10.2.5"
}
}
来源:https://stackoverflow.com/questions/41271008/angular2-build-error-ts2305