NPM包用于没有babel的反应组件

时间:2017-07-11 15:02:55

标签: javascript reactjs npm ecmascript-6

我使用react / ES6构建了一个UI组件,我需要将其重用于其他几个项目。

所以我认为它可能是一个不错的小npm包。

原来npm包的默认值似乎是:

  1. 将ES6模块放在/src
  2. 在转换后的文件中有一个单独的/lib
  3. 在每个版本上将这些模块转换为ES5
  4. 从我的观点来看,这是一些(不必要的?)开销。将使用该程序包的项目也将使用ES6编写,因此无需转换依赖项。

    有没有办法在npm包中捆绑ES6模块并跳过transile过程 - 并接受项目需要使用ES6才能添加此依赖项的事实?

    编辑以澄清

    @ D-reaper对,公平。我的问题是进口方面。我已经构建了一个包含Project.jsx的包。尝试导入它时,我收到以下错误消息:

    ERROR in ./node_modules/foo/Project.jsx
    Module parse failed: /../node_modules/foo/Project.jsx Unexpected token (14:11)
    You may need an appropriate loader to handle this file type.
    

    所以我的猜测是,webpack / babel无法正确处理ES6模块的导入,因为他们希望npm包包含ES5 - 这是正确的假设吗?我可以解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

我将使用https://github.com/insin/nwb将我的反应组件放入npm包中。

答案 1 :(得分:0)

为什么不尝试使用Bit as共享您的组件。您可以使用bit的编译器,也可以使用自己的编译器(如果您有自定义用例)。您可以阅读更多https://codeburst.io/start-using-bit-to-build-react-apps-like-lego-7e14920f8de2