1

我正在使用 Nx 工具将我的 Angular 11 应用程序重构为库。我的主要应用程序具有@angular/localize依赖项并@angular/localize导入polyfills.ts. $localize我的库代码中的每次使用都会产生 Typescript 错误TS2304: Cannot find name '$localize'。我的图书馆没有自己的package.json文件。应用程序构建工作没有错误。它看起来像打字稿打字问题。有任何想法吗?

库 tsconfig.lib.json

{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "../../../dist/out-tsc",
    "target": "es2015",
    "declaration": true,
    "declarationMap": true,
    "inlineSources": true,
    "types": [],
    "lib": [
      "dom",
      "es2018"
    ]
  },
  "angularCompilerOptions": {
    "skipTemplateCodegen": true,
    "strictMetadataEmit": true,
    "enableResourceInlining": true
  },
  "exclude": [
    "src/test.ts",
    "**/*.spec.ts"
  ],
  "include": [
    "**/*.ts"
  ]
}

库中的 tsconfig.json

{
  "extends": "../../../tsconfig.base.json",
  "files": [],
  "include": [],
  "references": [
    {
      "path": "./tsconfig.lib.json"
    },
    {
      "path": "./tsconfig.spec.json"
    }
  ]
}

角版

Angular CLI: 11.1.1
Node: 14.15.4
OS: win32 x64

Angular: 11.1.0
... animations, cdk, common, compiler, compiler-cli, core
... elements, forms, language-service, localize, material
... platform-browser, platform-browser-dynamic, router
Ivy Workspace: <error>

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1002.1
@angular-devkit/build-angular   0.1101.1
@angular-devkit/core            10.2.1
@angular-devkit/schematics      11.0.7
@angular/cli                    11.1.1
@schematics/angular             11.0.7
@schematics/update              0.1101.1
rxjs                            6.6.3
typescript                      4.1.3
4

3 回答 3

1

The import of @angular/localize/init may cause a tslint error for no-import-side-effect because it adds to the global context (that is, a side effect). To fix this error, add the following to your tslint.config

"no-import-side-effect": [ true, { "ignore-module": "(core-js/.|zone\.js/.|@angular/localize/init)$" } ]

于 2021-01-27T08:35:04.007 回答
0

我来到这里寻找答案,但不知何故在路上偶然发现了一个解决方案。在我的项目中,工作区/项目 TS 版本与 VS Code 的版本(4.4.4 vs 4.5.4)略有不同,这有时会导致这些非问题。

除了背景,在我的场景中,我所要做的就是打开命令面板,输入/选择“TypeScript:选择 TypeScript 版本...”并将其设置回参考工作区版本。

于 2022-02-02T21:44:17.270 回答
-2

我有同样的问题,我在第一行添加了以下代码polyfills.ts解决了我的问题。

 import '@angular/localize/init';
于 2021-05-21T19:21:12.927 回答