如何在StencilJS项目间复用组件?支持defineCustomComponents或script标签吗?
StencilJS跨项目组件使用问题解答
始终未找到官方相关解答,特此咨询:能否在一个StencilJS组件项目中使用另一个StencilJS项目的defineCustomComponents?或是仅通过script标签即可导入不同包中的组件?示例代码如下:
<script scr="<path-to-package>" />
两种可行的实现方式
1. 调用defineCustomComponents导入
完全可以在当前StencilJS项目中使用另一个项目导出的defineCustomComponents方法,步骤如下:
- 先将目标StencilJS项目构建为可复用包,执行
npm run build生成dist目录,然后在当前项目中安装该包(本地包用npm install ../path-to-target-project,已发布包直接npm install package-name)。 - 在当前项目的入口文件(如
src/index.ts)或组件初始化逻辑中导入并调用方法:import { defineCustomComponents } from 'target-stencil-package/loader'; defineCustomComponents(); - 完成后即可在当前项目的模板中直接使用目标项目的自定义组件。
2. 通过script标签直接导入
也支持用script标签直接导入组件包,注意修正示例代码中的拼写错误(scr改为src):
<script src="<path-to-package>/dist/target-package.js"></script>
- 路径可以是本地文件路径、CDN地址或npm包的unpkg地址。
- 脚本加载完成后,目标组件会自动注册,直接在HTML中使用即可。
内容的提问来源于stack exchange,提问作者Andy95
相关产品推荐
相关产品推荐

