【发布时间】:2017-08-14 09:37:56
【问题描述】:
我正在创作一个我想放在npm 上的JavaScript 库。我目前在另一个项目中使用该库,并且已使用其 GitHub 存储库将其添加为依赖项:
"dependencies": {
// ... others
"react-web-component": "LukasBombach/react-web-component",
}
我也在使用带有 UglifyJsPlugin 的 Webpack。现在,当我想构建我的项目时,我收到一个错误:
编译失败。
压缩此文件中的代码失败:
./packages/react-scripts/node_modules/react-web-component/src/index.js line 18:0
error 命令失败,退出代码为 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 和getStyleElementsFromReactWebComponentStyleLoader 内部需要简单的module.export 命令。你可以看到他们的源代码here和here。
我已经尝试使用 ES6 导出/导入命令发布我的库。
我的库的完整源代码(只有这3个文件)可以在https://github.com/LukasBombach/react-web-component找到
【问题讨论】:
-
你忘记添加 react 标签了。
-
如果我理解正确,您的意思是我不需要 React 库。这不是问题,我这里不需要。
-
没有。由于有反应代码,我认为反应必须做一些我不确定的事情。如果是,添加标签 react 将帮助您将此问题带到 react 开发人员
-
这真的不是问题,因为我这里没有使用 React。我正在使用一个编译的反应类,对我来说,函数只是一个任意对象
-
我找到了解决办法
标签: javascript node.js minify uglifyjs2