如何使用 Brunch 编写多文件 NPM 包

How to write a multi-file NPM package with Brunch

我有一个多文件项目,ES6 风格 exports 和 imports.

我正在使用 Brunch 将这些文件连接成 1 个 main.js 文件,该文件将用作 NPM 包的 main

要指定我的包的 API,我需要在 main.js 中包含 export。但是当 Brunch 连接我的 js 文件时,我担心 (1) exports 用于内部 imports 和 (2) exports 用于我的 API 两者看起来一样。

查看生成的 main.js 文件,我在源代码中编写的 export 似乎被包装到模块中,但其中 none 是顶级导出,例如NPM 包所需的那些。

如何让 NPM 区分这两种类型的 export?具体来说,如何在 Brunch 连接生成的 main.js 文件中包含 exports?

Brunch 是 not designed for writing libraries,而是用于构建应用程序。

我根本不需要连接文件来将它们发布到 NPM,所以我使用 Babel 和 React 和 ES6 预设将我的 ES6 .jsx 文件转换为 ES5 .js 个文件。

然后我创建一个文件(例如 main.js),我在其中导出我的库并将其设置为 package.json 中的 main

然后我可以使用 Brunch 创建一个带有 React 骨架 (brunch new -s brunch/with-react)、npm install <my-package>import 我的应用程序中的库的应用程序。