将应用程序从 Angular 5 更新到 7 后出现以下错误,使用 ng update --all --force 更新所有依赖项。
node_modules/@types/node/globals.d.ts(196,5( 中的错误:错误 TS2300:重复的标识符"已解决"。src/typings.d.ts(12,3(:错误 TS2300:重复的标识符"解析"。
尝试将其添加到tsconfig.json文件:
"exclude": [
"node_modules",
"typings/main",
"typings/main.d.ts",
"typings/index.d.ts",
"node_modules/@types/node/globals.d.ts"
]
这个到package.json: "postinstall": "shx rm -rf node_modules/@types/node && echo 'workaround for libs importing @types/node on browser environment'"
然后删除节点模块并进行全新安装。没有任何帮助。
这是来自node_modules/@types/node/globals.d.ts
interface NodeRequireFunction {
/* tslint:disable-next-line:callable-types */
(id: string): any;
}
interface NodeRequire extends NodeRequireFunction {
resolve: RequireResolve; <- duplicate resolve
cache: any;
/**
* @deprecated
*/
extensions: NodeExtensions;
main: NodeModule | undefined;
}
interface RequireResolve {
(id: string, options?: { paths?: string[]; }): string;
paths(request: string): string[] | null;
}
interface NodeExtensions {
'.js': (m: NodeModule, filename: string) => any;
'.json': (m: NodeModule, filename: string) => any;
'.node': (m: NodeModule, filename: string) => any;
[ext: string]: (m: NodeModule, filename: string) => any;
}
declare var require: NodeRequire;
这是来自 typings.d.ts:
declare var module: NodeModule;
interface NodeModule {
id: string;
}
declare var CSSstring: string;
interface NodeRequire {
cache: any;
extensions: NodeExtensions;
main: NodeModule;
(id: string): any;
resolve(id: string): string; <- duplicate resolve
}
declare var require: NodeRequire;
declare module '*.json' {
const value: any;
export default value;
}
我收到了类似的错误消息。我已经修复了在我的项目中安装打字稿的问题:
npm i -D typescript
Typescript 是全局安装的,以前的版本与项目中的@types/节点库版本不对应
这种情况正在发生,因为 2 节点模块定义"解析">
您可以通过执行以下操作来解决此问题:
tsconfig.app.json
{
"compilerOptions": {
types: [] // you can list the types you want to use here
}
}
如果你正在进行单元测试,你可能想对tsconfig.spec.json做同样的事情。