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

Posted

技术标签:

【中文标题】如何使用 Brunch 编写多文件 NPM 包【英文标题】:How to write a multi-file NPM package with Brunch 【发布时间】:2016-08-22 07:02:18 【问题描述】:

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

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

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

查看生成的 main.js 文件,我在源代码中编写的 exports 似乎被包装到模块中,但这些都不是像 NPM 包所需的***导出。

如何让npm区分这两种exports?具体来说,我怎样才能在早午餐连接生成的main.js 文件中包含exports?

【问题讨论】:

【参考方案1】:

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

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

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

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

【讨论】:

以上是关于如何使用 Brunch 编写多文件 NPM 包的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 brunch 将翡翠模板渲染成 HTML

如何发布一个npm包(基于vue)

如何开发一个自己的npm包

如何使用 RequireJS 加载前端 NPM/Yarn 包

npm install 失败,因为注册表中缺少包

快速开发一个npm包(轮子)