我正在编写一个我想放在的 JavaScript 库npm
。我目前正在另一个项目中使用该库,并且已使用其 GitHub 存储库将其添加为依赖项:
"dependencies": {
// ... others
"react-web-component": "LukasBombach/react-web-component",
}
我也在使用带有UglifyJsPlugin
. 现在,当我想构建我的项目时,我收到一个错误:
编译失败。
无法缩小此文件中的代码:
./packages/react-scripts/node_modules/react-web-component/src/index.js 行 18:0
错误命令失败,退出代码为 1。
这是我图书馆的问题。当我从我的部门(和我的代码)中删除它时,编译工作。
我无法弄清楚问题是什么,我的代码看起来很简单:
const ReactDOM = require('react-dom');
const retargetEvents = require('./retargetEvents');
const getStyleElementsFromReactWebComponentStyleLoader = require('./getStyleElementsFromReactWebComponentStyleLoader');
module.exports = {
create: function(app, tagName, options) {
const proto = Object.create(HTMLElement.prototype, {
attachedCallback: {
value: function() {
const shadowRoot = this.createShadowRoot();
const mountPoint = document.createElement('div');
getStyleElementsFromReactWebComponentStyleLoader().forEach(style =>
shadowRoot.appendChild(style)
);
shadowRoot.appendChild(mountPoint);
ReactDOM.render(app, mountPoint);
retargetEvents(shadowRoot);
},
},
});
document.registerElement(tagName, { prototype: proto });
},
};
在retargetEvents
and getStyleElementsFromReactWebComponentStyleLoader
requires 里面有简单的module.export
命令。你可以在这里和这里查看他们的源代码。
我已经尝试使用 ES6 导出/导入命令发布我的库。
我的库的完整源代码(只有这 3 个文件)可以在https://github.com/LukasBombach/react-web-component找到