如何使用 Brunch 编写多文件 NPM 包
How to write a multi-file NPM package with Brunch
我有一个多文件项目,ES6 风格 export
s 和 import
s.
我正在使用 Brunch 将这些文件连接成 1 个 main.js
文件,该文件将用作 NPM 包的 main
。
要指定我的包的 API,我需要在 main.js
中包含 export
。但是当 Brunch 连接我的 js
文件时,我担心 (1) export
s 用于内部 import
s 和 (2) export
s 用于我的 API 两者看起来一样。
查看生成的 main.js
文件,我在源代码中编写的 export
似乎被包装到模块中,但其中 none 是顶级导出,例如NPM 包所需的那些。
如何让 NPM 区分这两种类型的 export
?具体来说,如何在 Brunch 连接生成的 main.js
文件中包含 export
s?
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
我的应用程序中的库的应用程序。
我有一个多文件项目,ES6 风格 export
s 和 import
s.
我正在使用 Brunch 将这些文件连接成 1 个 main.js
文件,该文件将用作 NPM 包的 main
。
要指定我的包的 API,我需要在 main.js
中包含 export
。但是当 Brunch 连接我的 js
文件时,我担心 (1) export
s 用于内部 import
s 和 (2) export
s 用于我的 API 两者看起来一样。
查看生成的 main.js
文件,我在源代码中编写的 export
似乎被包装到模块中,但其中 none 是顶级导出,例如NPM 包所需的那些。
如何让 NPM 区分这两种类型的 export
?具体来说,如何在 Brunch 连接生成的 main.js
文件中包含 export
s?
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
我的应用程序中的库的应用程序。