首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular 8和jest -找不到文件: jest-preset-angular/InlineHtmlStripStylesTransformer.js

Angular 8和jest -找不到文件: jest-preset-angular/InlineHtmlStripStylesTransformer.js
EN

Stack Overflow用户
提问于 2019-10-22 15:12:09
回答 3查看 5.7K关注 0票数 4

我刚刚使用cli (v8 -最新版本)创建了angular应用程序。到目前为止,我没有做什么特别的事情。(ng new ng-app)。

我使用jest-schematic将jest添加到我的angular项目中。

代码语言:javascript
复制
cd ng-app
ng add @briebug/jest-schematic

问题是当我使用以下命令运行测试时,我得到一个错误:npm run test

代码语言:javascript
复制
> jest

 FAIL  src/app/app.component.spec.ts
  ● Test suite failed to run

    File not found: jest-preset-angular/InlineHtmlStripStylesTransformer.js (resolved as: C:\ng-app\jest-preset-angular\InlineHtmlStripStylesTransformer.js)

这里缺少什么?我该怎么解决这个问题呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-10-22 15:31:34

jest-preset-angular documentation中,当前的配置是:jest-preset-angular/build/InlineFilesTransformer

因此,在您的package.json中更改以下代码行:

代码语言:javascript
复制
   "astTransformers": [
      "jest-preset-angular/InlineHtmlStripStylesTransformer.js"
   ]

代码语言:javascript
复制
"astTransformers": [
   "jest-preset-angular/build/InlineFilesTransformer",
   "jest-preset-angular/build/StripStylesTransformer"
]
票数 9
EN

Stack Overflow用户

发布于 2019-10-29 02:24:47

对我来说,package.json中不存在astTransformers。经过详尽的搜索,该条目位于jest.impl.js中的第24行。

(角度8.2.1。使用@nrwl/angular 8.2.7)

除此之外,同样的更改也适用,将该行更改为:

代码语言:javascript
复制
"astTransformers": [
   "jest-preset-angular/build/InlineFilesTransformer",
   "jest-preset-angular/build/StripStylesTransformer"
]

请注意jest团队对该行的评论:

代码语言:javascript
复制
 // TODO: This is hacky, We should probably just configure it in the user's workspace 
// If jest-preset-angular is installed, apply settings

我当然不喜欢编辑这个文件,但是将更改放到jest.config文件中并没有起到作用(我希望库会将其作为选项),而且如果它确实属于package.json中的某个位置,我也不知道它属于哪里。

票数 2
EN

Stack Overflow用户

发布于 2021-08-10 14:02:11

已接受答案的语法已更改。如果您需要在Angular 12.x或@nrwl/angular 12.x上执行此操作,请尝试-

jest.config.js中-

代码语言:javascript
复制
 module.exports = {
        // [...]
        globals: {
            'ts-jest': {
                astTransformers: {
                    before: [
                        'jest-preset-angular/build/InlineFilesTransformer',
                        'jest-preset-angular/build/StripStylesTransformer',
                    ],
                },
            },
        },
    }

package.json中-

代码语言:javascript
复制
{
    "jest": {
        "globals": {
            "ts-jest": {
                "astTransformers": {
                    "before": [
                        "jest-preset-angular/build/InlineFilesTransformer",
                        "jest-preset-angular/build/StripStylesTransformer"
                    ]
                }
            }
        }
    }
}

参考- Link

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

https://stackoverflow.com/questions/58498885

复制
相关文章

相似问题

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