【问题标题】:Package won't work with angular production build包不适用于角度生产构建
【发布时间】:2019-08-22 19:23:34
【问题描述】:

我创建了一个库,它将 CKEditor 5 包装到一个 Angular 表单控件中,并在 npmjs 上将该库作为 package 提供。

当我构建 Angular 应用程序时,使用 ng build 导入该包及其模块时,一切正常。

如果我为生产构建应用程序,似乎缺少任何依赖项,因为我想使用的组件不起作用。

构建库后,package.json 如下所示:

{
    "name": "ckeditor-form-controls",
    "version": "0.0.4",
    "peerDependencies": {
        "@angular/common": "^7.0.0",
        "@angular/core": "^7.0.0",
        "@ckeditor/ckeditor5-angular": "^1.0.1",
        "@ckeditor/ckeditor5-build-classic": "^12.0.0",
        "@angular/forms": "^7.2.11"
    },
    "main": "bundles/ckeditor-form-controls.umd.js",
    "module": "fesm5/ckeditor-form-controls.js",
    "es2015": "fesm2015/ckeditor-form-controls.js",
    "esm5": "esm5/ckeditor-form-controls.js",
    "esm2015": "esm2015/ckeditor-form-controls.js",
    "fesm5": "fesm5/ckeditor-form-controls.js",
    "fesm2015": "fesm2015/ckeditor-form-controls.js",
    "typings": "ckeditor-form-controls.d.ts",
    "metadata": "ckeditor-form-controls.metadata.json",
    "sideEffects": false,
    "dependencies": {
        "tslib": "^1.9.0"
    }
}

我得到的错误如下:

main.962748ac39bd9e0b2a2a.js:1 TypeError: Cannot read property 'childCount' of undefined
at main.962748ac39bd9e0b2a2a.js:1
at Yl (main.962748ac39bd9e0b2a2a.js:1)
at Nl (main.962748ac39bd9e0b2a2a.js:1)
at main.962748ac39bd9e0b2a2a.js:1
at br.change (main.962748ac39bd9e0b2a2a.js:1)
at Fl (main.962748ac39bd9e0b2a2a.js:1)
at zl._initPlaceholder (main.962748ac39bd9e0b2a2a.js:1)
at zl.init (main.962748ac39bd9e0b2a2a.js:1)
at main.962748ac39bd9e0b2a2a.js:1
at t.invoke (polyfills.6082c74956d5f30a31fd.js:1)
at e.run (polyfills.6082c74956d5f30a31fd.js:1)
at polyfills.6082c74956d5f30a31fd.js:1
at t.invokeTask (polyfills.6082c74956d5f30a31fd.js:1)
at e.runTask (polyfills.6082c74956d5f30a31fd.js:1)
at g (polyfills.6082c74956d5f30a31fd.js:1)
at e.invokeTask [as invoke] (polyfills.6082c74956d5f30a31fd.js:1)
at y (polyfills.6082c74956d5f30a31fd.js:1)
at XMLHttpRequest.b (polyfills.6082c74956d5f30a31fd.js:1)

我在 GitHub 上为此打开了一个问题:https://github.com/ckeditor/ckeditor5-build-classic/issues/68

【问题讨论】:

  • 请显示您的组件代码,并检查控制台是否有任何错误日志
  • 你为什么将它设置为 PeerDependency 而不是普通的 Dependency
  • @NgôHùngPhúc 完成!
  • @DanielTurcich 是不是因为软件包需要它而依赖它?

标签: angular ckeditor angular-cli angular-components ckeditor5


【解决方案1】:

我有同样的问题,以下更改对我有用:

在 tsconfig.json 中:

  • 从“目标”:“es2015”到“目标”:“es6”
  • 已删除占位符。

注意:我使用的是我自己定制的 ckEditor 构建:

https://www.npmjs.com/package/@gvreddy04/ckeditor5-build-classic-all-features

【讨论】:

  • 感谢您的软件包链接,我已经花了几个小时尝试这样做。他们确实应该提供一个“厨房水槽”示例,您可以使用配置从中删除东西。
  • 对我来说删除占位符就足够了。
【解决方案2】:

从您的 html 中删除 [config]="{ placeholder: 'Description' }"。我有同样的问题。当我删除它时,它可以工作,但没有占位符。在这种情况下,您不能使用占位符。

【讨论】:

  • @DiegoVictordeJesus 这是 Angular 缺陷,所以没有意义。
【解决方案3】:

这似乎是ckeditor5-angular 和生产构建过程的错误。在他们的 github 上查看 this issue here

【讨论】:

  • 是我创造了这个问题! :)
  • 哈哈!确实!哎呀! :)
猜你喜欢
  • 2019-11-26
  • 2019-12-10
  • 2019-05-01
  • 1970-01-01
  • 2020-09-24
  • 2020-04-11
  • 1970-01-01
  • 2020-01-04
  • 2020-08-16
相关资源
最近更新 更多