首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Angular/webpack在@spartacus/storefront中找不到.d.ts文件

Angular/webpack在@spartacus/storefront中找不到.d.ts文件
EN

Stack Overflow用户
提问于 2021-04-14 06:02:20
回答 1查看 135关注 0票数 0

这是一个给SAP Spartacus团队的问题。

在创建Spartacus组件时,我遇到了无法解析特定Spartacus .d.ts定义文件的错误。

该问题可在以下Github存储库/分支中重现:https://github.wdf.sap.corp/vis/commerce-cloud-poc/tree/module-import-issue/storefront

这个问题并不是发生在所有的Spartacus定义中,只发生在一些定义中。

当我在我们的组件代码中使用以下导入语句时,tsc可以毫无问题地编译代码(文件/Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/node_modules/@spartacus/storefront/cms-structure/page/model/cms-component-data.d.ts存在):

import { CmsComponentData } from '@spartacus/storefront/cms-structure/page/model/cms-component-data';

但是当我运行ng serve --verbose时,我可以看到angular/webpack并没有探测到它。探测只是检查具有.ts扩展名的文件,而不是.d.ts扩展名的文件:

代码语言:javascript
运行
复制
WARNING in [DedupeModuleResolvePlugin]: /Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/node_modules/@spartacus/core/node_modules/tslib/tslib.es6.js -> /Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/node_modules/@spartacus/storefront/node_modules/tslib/tslib.es6.js

ERROR in ./src/app/cms-epd-visual.model.ts

Module not found: Error: Can't resolve '@spartacus/storefront/cms-structure/page/model/cms-component-data' in '/Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/src/app'

resolve '@spartacus/storefront/cms-structure/page/model/cms-component-data' in '/Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/src/app'

  Parsed request is a module

  using description file: /Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/package.json (relative path: ./src/app)

    Field 'browser' doesn't contain a valid alias configuration

    resolve as module

      looking for modules in /Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront

        using description file: /Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/package.json (relative path: .)

          Field 'browser' doesn't contain a valid alias configuration

          using description file: /Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/package.json (relative path: ./@spartacus/storefront/cms-structure/page/model/cms-component-data)

            no extension

              Field 'browser' doesn't contain a valid alias configuration

              /Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/@spartacus/storefront/cms-structure/page/model/cms-component-data doesn't exist

            .ts

              Field 'browser' doesn't contain a valid alias configuration

              /Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/@spartacus/storefront/cms-structure/page/model/cms-component-data.ts doesn't exist

            .tsx

              Field 'browser' doesn't contain a valid alias configuration

              /Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/@spartacus/storefront/cms-structure/page/model/cms-component-data.tsx doesn't exist

            .mjs

              Field 'browser' doesn't contain a valid alias configuration

              /Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/@spartacus/storefront/cms-structure/page/model/cms-component-data.mjs doesn't exist

            .js

              Field 'browser' doesn't contain a valid alias configuration

              /Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/@spartacus/storefront/cms-structure/page/model/cms-component-data.js doesn't exist

            as directory

              /Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/@spartacus/storefront/cms-structure/page/model/cms-component-data doesn't exist

      /Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/src/app/node_modules doesn't exist or is not a directory

      /Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/src/node_modules doesn't exist or is not a directory

      /Users/i070295/SAPDevelop/vis/commerce-cloud-poc/node_modules doesn't exist or is not a directory

      /Users/i070295/SAPDevelop/vis/node_modules doesn't exist or is not a directory

      /Users/i070295/SAPDevelop/node_modules doesn't exist or is not a directory

      /Users/i070295/node_modules doesn't exist or is not a directory

      /Users/node_modules doesn't exist or is not a directory

      /node_modules doesn't exist or is not a directory

      looking for modules in /Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/node_modules

        using description file: /Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/package.json (relative path: ./node_modules)

          Field 'browser' doesn't contain a valid alias configuration

          using description file: /Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/node_modules/@spartacus/storefront/package.json (relative path: ./cms-structure/page/model/cms-component-data)

            no extension

              Field 'browser' doesn't contain a valid alias configuration

              /Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/node_modules/@spartacus/storefront/cms-structure/page/model/cms-component-data doesn't exist

            .ts

              Field 'browser' doesn't contain a valid alias configuration

              /Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/node_modules/@spartacus/storefront/cms-structure/page/model/cms-component-data.ts doesn't exist

            .tsx

              Field 'browser' doesn't contain a valid alias configuration

              /Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/node_modules/@spartacus/storefront/cms-structure/page/model/cms-component-data.tsx doesn't exist

            .mjs

              Field 'browser' doesn't contain a valid alias configuration

              /Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/node_modules/@spartacus/storefront/cms-structure/page/model/cms-component-data.mjs doesn't exist

            .js

              Field 'browser' doesn't contain a valid alias configuration

              /Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/node_modules/@spartacus/storefront/cms-structure/page/model/cms-component-data.js doesn't exist

            as directory

              /Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/node_modules/@spartacus/storefront/cms-structure/page/model/cms-component-data doesn't exist

[/Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/@spartacus/storefront/cms-structure/page/model/cms-component-data]

[/Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/@spartacus/storefront/cms-structure/page/model/cms-component-data.ts]

[/Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/@spartacus/storefront/cms-structure/page/model/cms-component-data.tsx]

[/Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/@spartacus/storefront/cms-structure/page/model/cms-component-data.mjs]

[/Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/@spartacus/storefront/cms-structure/page/model/cms-component-data.js]

[/Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/src/app/node_modules]

[/Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/src/node_modules]

[/Users/i070295/SAPDevelop/vis/commerce-cloud-poc/node_modules]

[/Users/i070295/SAPDevelop/vis/node_modules]

[/Users/i070295/SAPDevelop/node_modules]

[/Users/i070295/node_modules]

[/Users/node_modules]

[/node_modules]

[/Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/node_modules/@spartacus/storefront/cms-structure/page/model/cms-component-data]

[/Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/node_modules/@spartacus/storefront/cms-structure/page/model/cms-component-data.ts]

[/Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/node_modules/@spartacus/storefront/cms-structure/page/model/cms-component-data.tsx]

[/Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/node_modules/@spartacus/storefront/cms-structure/page/model/cms-component-data.mjs]

[/Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/node_modules/@spartacus/storefront/cms-structure/page/model/cms-component-data.js]

 @ ./src/app/cms-epd-visual.model.ts 1:0-101 4:47-63

 @ ./src/app/epd-visual.component.ts

 @ ./src/app/app.component.ts

 @ ./src/app/app.module.ts

 @ ./src/main.ts

 @ multi (webpack)-dev-server/client?http://0.0.0.0:0/sockjs-node&sockPath=/sockjs-node ./src/main.ts

我在网上看到过一个建议的变通/变通方法,那就是更改导入路径以包含.d后缀,试图欺骗模块加载机制将.d.ts文件视为.ts文件,但这对angular 10.1不起作用,后者正确地指出第三方库应该包括定义文件,而不是未编译的.ts文件:

代码语言:javascript
运行
复制
Module build failed (from ./node_modules/@ngtools/webpack/src/index.js):
Error: /Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/node_modules/@spartacus/storefront/cms-structure/page/model/cms-component-data.d.ts is missing from the TypeScript compilation. Please make sure it is in your tsconfig via the 'files' or 'include' property.
The missing file seems to be part of a third party library. TS files in published libraries are often a sign of a badly packaged library. Please open an issue in the library repository to alert its author and ask them to package the library using the Angular Package Format (https://docs.google.com/document/d/1CZC2rcpxffTDfRDs6p1cfbmKNLA6x5O-NtkJglDaBVs/preview).
    at AngularCompilerPlugin.getCompiledFile (/Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/node_modules/@ngtools/webpack/src/angular_compiler_plugin.js:949:23)
    at plugin.done.then (/Users/i070295/SAPDevelop/vis/commerce-cloud-poc/storefront/node_modules/@ngtools/webpack/src/loader.js:43:31)
    at process._tickCallback (internal/process/next_tick.js:68:7)
 @ ./src/app/cms-epd-visual.model.ts 1:0-103 4:47-63
 @ ./src/app/epd-visual.component.ts
 @ ./src/app/app.component.ts
 @ ./src/app/app.module.ts
 @ ./src/main.ts
 @ multi (webpack)-dev-server/client?http://0.0.0.0:0/sockjs-node&sockPath=/sockjs-node ./src/main.ts

我还尝试了下面的import语句,但不起作用:import { CmsComponentData } from '@spartacus/storefront/cms-structure/page/model';

该问题特定于特定的Spartacus定义文件。如果我删除CmsComponentData的用法,而是在代码中完全相同的位置导入和使用以下类型,我看不到任何问题:

import { B2cStorefrontModule } from '@spartacus/storefront';

有没有人能给我一些建议来避免这个问题呢?

最好的问候,山姆·加兰德

EN

回答 1

Stack Overflow用户

发布于 2021-04-14 08:08:31

此import语句有效:import { CmsComponentData } from '@spartacus/storefront';

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67082957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档