在Angular中导入Web组件(导出为es6模块)

尤里·克拉维茨(Yuriy Kravets)

我有一个导出一组Web组件的库。该捆绑包是使用汇总创建的,并且所有导出均已就位,例如:
export { Input, Button };whereInputButton是捆绑包前面定义的es6类。
我已经将它作为npm软件包发布到一个私有的npm仓库中,现在正尝试导入到另一个有角度的应用程序中,
import { Input, Button } from '../../node_modules/@company/web-components';
我也尝试将它们导入为,import '../../node_modules/@company/web-components';
但是webpack似乎对导入进行了握手,因为它看不到它的使用位置。但是,有趣的是,当库作为iifeWebpack导出时,不会对其进行树状摇动。

有没有一种方法可以告诉angular的webpack包含特定的导入内容,而不管代码中是否引用了它?

尤里·克拉维茨(Yuriy Kravets)

显然,有一种方法可以node_modules通过将以下行添加到来包含es6模块angular.json

{
  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
  "projects": {
    "project-name": {
      "architect": {
        "build": {
          "options": {
            "assets": [
              {
                "glob": "release.js",
                "input": "./node_modules/@company/web-components/dist/",
                "output": "."
              }
            ],

然后我们可以将其包含在index.html典型的模块导入中:

<script type="module" src="release.js"></script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章