【问题标题】:Upgrade Angular 2 to angular 4 failed将 Angular 2 升级到 Angular 4 失败
【发布时间】:2017-10-20 09:51:03
【问题描述】:

我从 angular 2 升级到 angular 4,现在出现错误。我从this复制了文本 即

npm install @angular/common@latest @angular/compiler@latest @angular/compiler-cli@latest @angular/core@latest @angular/forms@latest @angular/http@latest @angular/platform-browser@latest @angular/platform-browser-dynamic@latest @angular/platform-server@latest @angular/router@latest @angular/animations@latest typescript@latest --save

现在我在运行 npm start 时遇到此错误,请协助

`

product-management@1.0.0 启动 C:\Users\dp9\Documents\Visual Studio 2015\Projects\NG\NG UI

tsc && 同时 "tsc -w" "lite-server"

node_modules/@types/node/index.d.ts(70,5):错误 TS2403:后续变量声明必须具有相同的类型。变量“main”必须是“any”类型,但这里有“NodeModule”类型。

node_modules/@types/node/index.d.ts(81,5):错误 TS2403:后续变量声明必须具有相同的类型。变量“parent”必须是“any”类型,但这里有“NodeModule”类型。

node_modules/@types/node/index.d.ts(82,5):错误 TS2403:后续变量声明必须具有相同的类型。变量“children”必须是“any[]”类型,但这里有“NodeModule[]”类型。

node_modules/@types/node/index.d.ts(102,6):错误 TS2300:重复标识符“BufferEncoding”。

node_modules/@types/node/index.d.ts(263,18):错误 TS2300:重复标识符“EventEmitter”。

node_modules/@types/node/index.d.ts(371,9):错误 TS2403:后续变量声明必须具有相同的类型。变量“stdout”必须是“WritableStream”类型,但这里有“WriteStream”类型。

node_modules/@types/node/index.d.ts(372,9):错误 TS2403:后续变量声明必须具有相同的类型。变量“stderr”必须是“WritableStream”类型,但这里有“WriteStream”类型。

node_modules/@types/node/index.d.ts(373,9):错误 TS2403:后续变量声明必须具有相同的类型。变量“stdin”必须是“ReadableStream”类型,但这里有“ReadStream”类型。

node_modules/@types/node/index.d.ts(422,9):错误 TS2403:后续变量声明必须具有相同的类型。变量“平台”必须是“字符串”类型,但这里有“平台”类型。

node_modules/@types/node/index.d.ts(580,26):错误 TS2300:重复标识符“缓冲区”。

node_modules/@types/node/index.d.ts(580,50):错误 TS2300:重复标识符“SlowBuffer”。

node_modules/@types/node/index.d.ts(604,22):错误 TS2415:“EventEmitter”类错误地扩展了“内部”基类。 属性“eventNames”的类型不兼容。 类型 '() => (string | symbol)[]' 不可分配给类型 '() => string[]'。 类型 '(string | symbol)[]' 不能分配给类型 'string[]'。

node_modules/@types/node/index.d.ts(624,5): 错误 TS2309: 导出分配不能在具有其他导出元素的模块中使用。

node_modules/@types/node/index.d.ts(769,18):错误 TS2300:重复标识符“代理”。

node_modules/@types/node/index.d.ts(824,9):错误 TS2403:后续变量声明必须具有相同的类型。变量 'addressType' 必须是 'string' 类型,但这里有类型 'number | “udp4” | “udp6”。

node_modules/@types/node/index.d.ts(827,18): error TS2300: Duplicate identifier 'Worker'.

node_modules/@types/node/index.d.ts(1510,17):错误 TS2300:重复标识符“CompleterResult”。

node_modules/@types/node/index.d.ts(1547,18):错误 TS2300:重复标识符“脚本”。

node_modules/@types/node/index.d.ts(2911,18):错误 TS2300:重复标识符“TLSSocket”。

node_modules/@types/node/index.d.ts(3108,9):错误 TS2403:后续变量声明必须具有相同的类型。变量“pfx”必须是“any”类型,但这里有“string |”类型。缓冲区[]'。

node_modules/@types/node/index.d.ts(3109,9):错误 TS2403:后续变量声明必须具有相同的类型。变量'key'必须是'any'类型,但这里有'string |任何[] |字符串[] |缓冲区'。

node_modules/@types/node/index.d.ts(3111,9):错误 TS2403:后续变量声明必须具有相同的类型。变量 'cert' 必须是 'any' 类型,但这里有类型 'string |字符串[] |缓冲区 |缓冲区[]'。

node_modules/@types/node/index.d.ts(3112,9):错误 TS2403:后续变量声明必须具有相同的类型。变量 'ca' 必须是 'any' 类型,但这里有类型 'string |字符串[] |缓冲区 |缓冲区[]'。

node_modules/@types/node/index.d.ts(3113,9):错误 TS2403:后续变量声明必须具有相同的类型。变量 'crl' 必须是 'any' 类型,但这里有类型 'string |字符串[]'。

node_modules/@types/node/index.d.ts(3115,9):错误 TS2403:后续变量声明必须具有相同的类型。变量“honorCipherOrder”必须是“any”类型,但这里有“boolean”类型。

node_modules/@types/node/index.d.ts(3118,9):错误 TS2403:后续变量声明必须具有相同的类型。变量 'NPNProtocols' 必须是 'any' 类型,但这里有类型 'string[] |缓冲区'。

node_modules/@types/node/index.d.ts(3135,9):错误 TS2403:后续变量声明必须具有相同的类型。变量 'key' 必须是 'string | Buffer',但这里有类型'string |字符串[] |缓冲区 |缓冲区[]'。

node_modules/@types/node/index.d.ts(3137,9):错误 TS2403:后续变量声明必须具有相同的类型。变量 'cert' 的类型必须为 'string | Buffer',但这里有类型'string |字符串[] |缓冲区 |缓冲区[]'。

node_modules/@types/node/index.d.ts(3138,9):错误 TS2403:后续变量声明必须具有相同的类型。变量 'ca' 的类型必须为 '(string | Buffer)[]',但这里的类型为 'string |缓冲区 | (字符串 | 缓冲区)[]'.

node_modules/@types/node/index.d.ts(3377,9):错误 TS2403:后续变量声明必须具有相同的类型。变量“padding”必须是“any”类型,但这里有“number”类型。

node_modules/@types/node/index.d.ts(3382,9):错误 TS2403:后续变量声明必须具有相同的类型。变量“padding”必须是“any”类型,但这里有“number”类型。

node_modules/@types/node/index.d.ts(3429,22):错误 TS2420:“Readable”类错误地实现了“ReadableStream”接口。 属性“暂停”的类型不兼容。 类型 '() => Readable' 不可分配给类型 '{ (): ReadableStream; (): 可读流; }'。 类型“Readable”不可分配给类型“ReadableStream”。 属性“eventNames”的类型不兼容。 类型 '() => (string | symbol)[]' 不可分配给类型 '() => string[]'。 类型 '(string | symbol)[]' 不能分配给类型 'string[]'。 node_modules/@types/node/index.d.ts(3512,22):错误 TS2420:“可写”类错误地实现了“可写流”接口。 属性“eventNames”的类型不兼容。 类型 '() => (string | symbol)[]' 不可分配给类型 '() => string[]'。 类型 '(string | symbol)[]' 不能分配给类型 'string[]'。 node_modules/@types/node/index.d.ts(3622,5): 错误 TS2309: 导出赋值不能在具有其他导出元素的模块中使用。

node_modules/@types/node/index.d.ts(3705,5):错误 TS2300:重复标识符“export=”。

node_modules/@types/node/index.d.ts(3727,18):错误 TS2300:重复标识符“域”。

node_modules/@types/node/index.d.ts(3727,18):错误 TS2420:“域”类错误地实现了“NodeJS.Domain”接口。

属性“eventNames”的类型不兼容。 类型 '() => (string | symbol)[]' 不可分配给类型 '() => string[]'。 类型 '(string | symbol)[]' 不能分配给类型 'string[]'。

node_modules/@types/node/index.d.ts(4019,5):错误 TS2300:重复标识符“export=”。

typings/globals/node/index.d.ts(78,6):错误 TS2300:重复标识符“BufferEncoding”。

typings/globals/node/index.d.ts(234,18):错误 TS2300:重复标识符“EventEmitter”。

typings/globals/node/index.d.ts(516,9): 错误 TS2502: 'BuffType' 在其自己的类型注释中被直接或间接引用。

typings/globals/node/index.d.ts(517,9): error TS2502: 'SlowBuffType' 在其自己的类型注释中被直接或间接引用。

typings/globals/node/index.d.ts(518,26):错误 TS2300:重复标识符“缓冲区”。

typings/globals/node/index.d.ts(518,50):错误 TS2300:重复标识符“SlowBuffer”。

typings/globals/node/index.d.ts(580,22):错误 TS2320:接口 'Server' 不能同时扩展类型 'EventEmitter' 和 'Server'。

“EventEmitter”和“Server”类型的命名属性“addListener”不相同。

typings/globals/node/index.d.ts(580,22):错误 TS2320:接口 'Server' 不能同时扩展类型 'EventEmitter' 和 'Server'。

“EventEmitter”和“Server”类型的命名属性“emit”不相同。

typings/globals/node/index.d.ts(580,22):错误 TS2320:接口 'Server' 不能同时扩展类型 'EventEmitter' 和 'Server'。

“EventEmitter”和“Server”类型的命名属性“on”不相同。

typings/globals/node/index.d.ts(580,22):错误 TS2320:接口 'Server' 不能同时扩展类型 'EventEmitter' 和 'Server'。

“EventEmitter”和“Server”类型的命名属性“once”不相同。

typings/globals/node/index.d.ts(580,22):错误 TS2320:接口 'Server' 不能同时扩展类型 'EventEmitter' 和 'Server'。

“EventEmitter”和“Server”类型的命名属性“prependListener”不相同。

typings/globals/node/index.d.ts(580,22):错误 TS2320:接口 'Server' 不能同时扩展类型 'EventEmitter' 和 'Server'。

“EventEmitter”和“Server”类型的命名属性“prependOnceListener”不相同。

typings/globals/node/index.d.ts(580,22):错误 TS2320:接口 'Server' 不能同时扩展类型 'EventEmitter' 和 'Server'。

“EventEmitter”和“Server”类型的命名属性“removeListener”不相同。

typings/globals/node/index.d.ts(591,22):错误 TS2320:接口“ServerResponse”不能同时扩展类型“EventEmitter”和“Writable”。

“EventEmitter”和“Writable”类型的命名属性“addListener”不相同。

typings/globals/node/index.d.ts(591,22):错误 TS2320:接口“ServerResponse”不能同时扩展类型“EventEmitter”和“Writable”。

“EventEmitter”和“Writable”类型的命名属性“emit”不相同。

typings/globals/node/index.d.ts(591,22):错误 TS2320:接口“ServerResponse”不能同时扩展类型“EventEmitter”和“Writable”。

“EventEmitter”和“Writable”类型的命名属性“on”不相同。

typings/globals/node/index.d.ts(591,22):错误 TS2320:接口“ServerResponse”不能同时扩展类型“EventEmitter”和“Writable”。

“EventEmitter”和“Writable”类型的命名属性“once”不相同。

typings/globals/node/index.d.ts(591,22):错误 TS2320:接口“ServerResponse”不能同时扩展类型“EventEmitter”和“Writable”。

“EventEmitter”和“Writable”类型的命名属性“prependListener”不相同。

typings/globals/node/index.d.ts(591,22):错误 TS2320:接口“ServerResponse”不能同时扩展类型“EventEmitter”和“Writable”。

“EventEmitter”和“Writable”类型的命名属性“prependOnceListener”不相同。

typings/globals/node/index.d.ts(591,22):错误 TS2320:接口“ServerResponse”不能同时扩展类型“EventEmitter”和“Writable”。

“EventEmitter”和“Writable”类型的命名属性“removeListener”不相同。

typings/globals/node/index.d.ts(621,22):错误 TS2320:接口“ClientRequest”不能同时扩展类型“EventEmitter”和“Writable”。

“EventEmitter”和“Writable”类型的命名属性“addListener”不相同。

typings/globals/node/index.d.ts(621,22):错误 TS2320:接口“ClientRequest”不能同时扩展类型“EventEmitter”和“Writable”。

“EventEmitter”和“Writable”类型的命名属性“emit”不相同。

typings/globals/node/index.d.ts(621,22):错误 TS2320:接口“ClientRequest”不能同时扩展类型“EventEmitter”和“Writable”。

“EventEmitter”和“Writable”类型的命名属性“on”不相同。

typings/globals/node/index.d.ts(621,22):错误 TS2320:接口“ClientRequest”不能同时扩展类型“EventEmitter”和“Writable”。

“EventEmitter”和“Writable”类型的命名属性“once”不相同。

typings/globals/node/index.d.ts(621,22):错误 TS2320:接口“ClientRequest”不能同时扩展类型“EventEmitter”和“Writable”。

“EventEmitter”和“Writable”类型的命名属性“prependListener”不相同。

typings/globals/node/index.d.ts(621,22):错误 TS2320:接口“ClientRequest”不能同时扩展类型“EventEmitter”和“Writable”。

“EventEmitter”和“Writable”类型的命名属性“prependOnceListener”不相同。

typings/globals/node/index.d.ts(621,22):错误 TS2320:接口“ClientRequest”不能同时扩展类型“EventEmitter”和“Writable”。

“EventEmitter”和“Writable”类型的命名属性“removeListener”不相同。

typings/globals/node/index.d.ts(647,22):错误 TS2320:接口“IncomingMessage”不能同时扩展类型“EventEmitter”和“Readable”。

“EventEmitter”和“Readable”类型的命名属性“addListener”不相同。

typings/globals/node/index.d.ts(647,22):错误 TS2320:接口“IncomingMessage”不能同时扩展类型“EventEmitter”和“Readable”。

“EventEmitter”和“Readable”类型的命名属性“emit”不相同。

typings/globals/node/index.d.ts(647,22):错误 TS2320:接口“IncomingMessage”不能同时扩展类型“EventEmitter”和“Readable”。

“EventEmitter”和“Readable”类型的命名属性“on”不相同。

typings/globals/node/index.d.ts(647,22):错误 TS2320:接口“IncomingMessage”不能同时扩展类型“EventEmitter”和“Readable”。

“EventEmitter”和“Readable”类型的命名属性“once”不相同。

typings/globals/node/index.d.ts(647,22):错误 TS2320:接口“IncomingMessage”不能同时扩展类型“EventEmitter”和“Readable”。

“EventEmitter”和“Readable”类型的命名属性“prependListener”不相同。

typings/globals/node/index.d.ts(647,22):错误 TS2320:接口“IncomingMessage”不能同时扩展类型“EventEmitter”和“Readable”。

“EventEmitter”和“Readable”类型的命名属性“prependOnceListener”不相同。

typings/globals/node/index.d.ts(647,22):错误 TS2320:接口“IncomingMessage”不能同时扩展类型“EventEmitter”和“Readable”。

“EventEmitter”和“Readable”类型的命名属性“removeListener”不相同。

typings/globals/node/index.d.ts(698,18):错误 TS2300:重复标识符“代理”。

typings/globals/node/index.d.ts(743,18):错误 TS2300:重复标识符“工人”。

typings/globals/node/index.d.ts(1004,22):错误 TS2300:重复标识符“CompleterResult”。

typings/globals/node/index.d.ts(1044,18):错误 TS2300:重复标识符“脚本”。

typings/globals/node/index.d.ts(1323,22):错误 TS2320:接口 'Server' 不能同时扩展类型 'Socket' 和 'EventEmitter'。

“Socket”和“EventEmitter”类型的命名属性“removeListener”不相同。

typings/globals/node/index.d.ts(1886,18):错误 TS2300:重复标识符“TLSSocket”。

typings/globals/node/index.d.ts(2188,18):错误 TS2420:“Readable”类错误地实现了“ReadableStream”接口。

“暂停”属性的类型不兼容。 类型 '() => Readable' 不可分配给类型 '{ (): ReadableStream; (): 可读流; }'。 类型“Readable”不可分配给类型“ReadableStream”。 “可读”类型中缺少属性“isPaused”。 Typings/globals/node/index.d.ts(2211,18):错误 TS2420:“Writable”类错误地实现了“WritableStream”接口。

属性“eventNames”的类型不兼容。 类型 '() => (string | symbol)[]' 不可分配给类型 '() => string[]'。 类型 '(string | symbol)[]' 不能分配给类型 'string[]'。 键入'字符串 |符号'不可分配给类型'字符串'。 类型“符号”不可分配给类型“字符串”。 typings/globals/node/index.d.ts(2229,18):错误 TS2420:“Duplex”类错误地实现了接口“ReadWriteStream”。

“暂停”属性的类型不兼容。 类型 '() => Duplex' 不可分配给类型 '{ (): ReadWriteStream; (): 读写流; }'。 “Duplex”类型不能分配给“ReadWriteStream”类型。 “双工”类型中缺少属性“isPaused”。 typings/globals/node/index.d.ts(2250,18):错误 TS2420:“Transform”类错误地实现了“ReadWriteStream”接口。

“暂停”属性的类型不兼容。 类型 '() => Transform' 不可分配给类型 '{ (): ReadWriteStream; (): 读写流; }'。 类型“Transform”不可分配给类型“ReadWriteStream”。 “转换”类型中缺少属性“isPaused”。 typings/globals/node/index.d.ts(2343,5): 错误 TS2300: Duplicate identifier 'export='.

typings/globals/node/index.d.ts(2365,18):错误 TS2300:重复标识符“域”。

typings/globals/node/index.d.ts(2365,18):错误 TS2420:类 'Domain' 错误地实现了接口 'NodeJS.Domain'。

属性“eventNames”的类型不兼容。 类型 '() => (string | symbol)[]' 不可分配给类型 '() => string[]'。 类型 '(string | symbol)[]' 不能分配给类型 'string[]'。 typings/globals/node/index.d.ts(2625,5): 错误 TS2300: Duplicate identifier 'export='。

`

【问题讨论】:

    标签: node.js angular angular-upgrade


    【解决方案1】:

    卸载打字。 Typescript 类型现在由 @types 命名空间下的 npm 管理:

    npm uninstall --save typings
    

    另外,删除typings子目录。

    【讨论】:

      【解决方案2】:

      要从 Angular 2 更新到 Angular 4,请按照以下步骤操作:

      1 - 确保您不使用扩展 OnInit,或将扩展与任何生命周期事件一起使用。而是使用实现 <lifecycle event>

      2 - 将所有依赖项更新到版本 4 和最新的 TypeScript 使用

      Mac/Linux

      npm install @angular/{animations,common,compiler,compiler-cli,core,forms,http,platform-browser,platform-browser-dynamic,platform-server,router}@4.0.0 typescript@latest --save
      

      窗户

       npm install @angular/common@next @angular/compiler@next @angular/compiler-cli@next @angular/core@next @angular/forms@next @angular/http@next @angular/platform-browser@next @angular/platform-browser-dynamic@next @angular/platform-server@next @angular/router@next @angular/animations@next --save
      

      3 - 如果您在应用程序中使用动画,则应从 App NgModule 中的 @angular/platform-b​​rowser/animations 导入 BrowserAnimationsModule。

      4 - 将你的模板标签重命名为 ng-template。

      5 - 如果要验证表单,请添加 ngNativeValidate,因为 Angular 4 为所有表单添加了 novalidate 属性


      如果您仍然遇到一些问题,请尝试更新 nodejs 和 Typescript npm install -g typescript@latest

      如果这些都没有帮助,请将您的 Angular CLI 更新到最新版本

      npm uninstall -g @angular/cli
      npm cache clean
      npm install -g @angular/cli@latest
      

      并使用ng new newProject 生成一个新的 Angular 4 项目,并将您的逻辑和模板移动到新应用程序中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-27
        • 1970-01-01
        • 1970-01-01
        • 2019-06-06
        • 2020-03-21
        • 1970-01-01
        相关资源
        最近更新 更多