【发布时间】:2018-08-27 13:24:34
【问题描述】:
在我当前的项目中,我们正在根据 v1 规范构建本机 Web 组件,我们目前 webpack 在单个捆绑包中 comp-webcomponents.js。
这是我们当前包的入口点文件:
import 'document-register-element';
import 'nodelist-foreach-polyfill';
import 'babel-polyfill';
import 'components/tabs/comp-tabs';
import 'components/workspace-switcher/workspace-switcher';
import 'components/table/comp-table';
import 'components/date/comp-date';
import 'components/datepicker/comp-datepicker';
import 'components/datetime/comp-datetime';
import 'components/decimal/comp-decimal';
import 'components/number/comp-number';
import 'components/editor/comp-editor';
import 'components/time/comp-time';
import 'components/input/comp-input';
import 'components/button/comp-button';
import 'components/toggle-button/comp-toggle-button';
import 'components/yearmonth/comp-yearmonth';
一些组件具有供应商依赖性,例如 jQuery、datatables.net、jquery-ui、lodash 等。
问题 1:需要哪些步骤以便其他项目可以选择性地导入单个 Web 组件?
类似
import { compTable, compYearmonth } from "@comp-webcomponents";
问题 2:使每个 Web 组件成为可以使用单个命名空间安装的 npm 包需要什么?
有点像
npm install --save @comp-webcomponents/comp-div
示例组件:
class CompDiv extends HTMLDivElement {
constructor(...args) {
const self = super(...args);
self.property = null;
return self;
}
connectedCallback() {
console.log('connected CompDiv');
}
}
customElements.define('comp-div', CompDiv, { extends: 'div' });
非常感谢链接或其他有用的资源!
【问题讨论】:
-
你检查过 Ionic 的团队非常自己的组件库吗? github.com/ionic-team/ionic/tree/master/core
-
@MatthiasMax 我已经回答了您对模板松弛的评论。
标签: javascript npm webpack web-component