我有一个 Stencil 组件,作为其业务逻辑的一部分,我需要使用外部 Javascript 文件mylib.js
。Javascript 文件包含 Stencil 组件应该使用的一些业务逻辑。
这是我的组件:
import { Component, Element, Prop, h, Host } from '@stencil/core';
import moment from 'moment';
import mylib from 'src/js/mylib.js';
@Component({
tag: 'dashboard-widget',
styleUrl: 'dashboard-widget.css',
shadow: false
})
export class DashboardWidget {
@Element() el: HTMLElement;
@Prop() canvas: HTMLElement;
@Prop() channelName: string = "";
@Prop() channelValue: string = "";
@Prop() isBlinking: boolean = true;
componentDidLoad() {
console.log(mylib.test());
}
render() {
return (
<Host>
<div class="card-content card-content-padding">
<b>{this.channelName}</b>
<h1 class="dashboard-card-value">{this.channelValue}</h1>
<canvas class="dashboard-card-canvas"></canvas>
</div>
</Host>
);
}
}
我不断收到错误
TypeScript 找不到模块“src/js/mylib.js”。
我试过了:
import mylib from 'src/js/mylib.js';
import 'src/js/mylib.js';
import 'mylib' from 'src/js/mylib.js';
无济于事。
该mylib.js
文件位于js
文件夹内。在线文档根本没有提到如何导入外部库。我已经成功导入了 moment.js,但这只是因为我首先通过以下方式安装了它:
npm install moment
然后通过执行以下操作将其导入组件中:
import moment from 'moment';
我还尝试通过在 index.html 中引用外部 JS 库来“导入”它
<script src="assets/js/mylib.js"></script>
该库在组件外部可用,但在组件内部不可用