我正在玩自定义网络元素。目前,当我使用 NPM 时,我遇到了用角度显示自定义元素的问题。结果我没有任何错误,只有白屏。
当我手动尝试 customElement 时,它工作正常。只需将 TS 代码放在 Angular 项目 self 中,它就可以正常工作了。(当我使用 LitElement 框架尝试它时,我得到了相同的体验)。
有人可以帮助我并告诉我我缺少什么吗?
我使用一个空的角度项目进行测试。
向模块添加了 CUSTOM_ELEMENTS_SCHEMA。使用元素 ( ) 向文件添加了导入 import '@kireapp/viewer-test/src/hello-world-element';
在模板文件中添加了自定义标签 ()
NPM 项目(基于网站https://www.thisdot.co/blog/how-to-setup-a-typescript-project-using-rollup-js):
./src/hello-world-element.ts
class HelloWorldElement extends HTMLElement {
connectedCallback() {
this.innerHTML = `<h1>Hello World.</h1>`
}
}
customElements.define('hello-world', HelloWorldElement);
汇总配置
import merge from 'deepmerge';
import {createBasicConfig} from "@open-wc/building-rollup";
const baseConfig = createBasicConfig();
export default merge(baseConfig, {
input: './out-tsc/src/hello-world-element.js',
output: {
dir: 'dist'
}
});
tsconfig
{
"compilerOptions": {
"target": "es2018",
"module": "esnext",
"moduleResolution": "node",
"noEmitOnError": true,
"lib": ["es2017", "dom"],
"strict": true,
"esModuleInterop": false,
"outDir": "out-tsc",
"rootDir": "./",
"experimentalDecorators": true,
"resolveJsonModule": true,
"allowSyntheticDefaultImports": true
}
,
"include": ["src/**/*"],
"exclude": ["node_modules", "**/*.spec.ts"]
}
npm 在 Angular 项目中发布我使用 npm install @kireapp/viewer-test
当我将类更改为在 hello-world-element.ts 中导出并结合模板字符串使用 import {object} 时,结果是相同的。