从同一来源构建分发软件包和NPM软件包

我经常制作小型开源工具,但我不想限制我的用户。我的软件包通常只是一个功能,所以这就是我希望用户得到的:

  1. JS文件,他们可以通过添加srcscript标签。该脚本应该添加我的函数,以便他们可以在下面的脚本中调用它。对于根本不想使用包管理器的用户很有用:
<script src="https://amazingCDN.com/isEven.js"></script>
<script>
  isEven()
</script>
  1. 可以作为程序包发布的JS文件,因此使用NPM的用户可以键入npm install isEven然后导入我的程序包。

这两个JS文件应从同一来源构建。假设我的源代码仅包含一个命名函数,window如果我使用Webpack ,该函数应该添加到中,并且应该是可导入的。假设我将自己发布一个程序包,而我只希望自己的构建管道从源中生成两个JS文件。关于CDN,假设我使用jsDelivr,它可以从Github检索我的JS文件并将其最小化,所以我不在乎自己缩小文件。

我尝试将代码编写为模块,并使用带有独立标志的Browserify。它实际上可以与CommonJS模块一起使用,但是要使其与ES模块一起使用,我必须使用esmify,它只返回带有default的对象,所以我不能这样称呼它foo(),而必须像like那样称呼它foo.default()这不是我想要的。

我还尝试将其编写为独立文件,然后执行

echo 'export default ' | paste -d'\0' - src.js > module.js

这有点奏效,但我想知道是否还有更复杂,更可靠的解决方案。

我该如何实现?

我解决了这个问题,并为此精确任务创建了一个模板仓库。

您可以从此模板创建存储库,将库作为​​带有ES模块的NPM包来实现,然后一按即会创建dist文件夹,并且将有以库命名的分布式js文件。您的用户只需将其添加到脚本标签中,您的库就会出现在全局名称空间中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用npm软件包

来自分类Dev

PyDev是从站点软件包中的软件包而不是开发软件包中导入的(绝对导入)

来自分类Dev

使用Nuget软件包资源管理器来构建软件包

来自分类Dev

OS X软件包安装问题:找不到gfortran 4.8来构建软件包

来自分类Dev

如果不开发软件,是否可以创建Deb软件包并将其分发到Ubuntu商店?

来自分类Dev

Python Distutils软件包分发

来自分类Dev

获取软件包来源和存储库链接

来自分类Dev

从同一项目中的多个来源引用NuGet软件包

来自分类Dev

从本地来源安装软件包

来自分类Dev

通过厨师安装软件包的来源

来自分类Dev

如何从源中删除与另一个软件包同名的软件包?

来自分类Dev

apt-get-remove触发软件包安装?

来自分类Dev

SparkR和软件包

来自分类Dev

SparkR和软件包

来自分类Dev

Anaconda:在何处以及如何安装非分发软件包以支持flask-wtf conda配方?

来自分类Dev

Conda仅卸载一个软件包和一个软件包

来自分类Dev

我可以使用Debian软件包构建环境来构建Ubuntu软件包吗?

来自分类Dev

从源R安装软件包

来自分类Dev

卸载从源编译的软件包

来自分类Dev

我需要什么软件包来构建Qt 5和CMake应用程序?

来自分类Dev

我需要什么软件包来构建Qt 5和CMake应用程序?

来自分类Dev

使用Packrat和AppVeyor构建R软件包

来自分类Dev

使用pip和pipenv构建并安装本地软件包

来自分类Dev

Shorhand用于从同一软件包中安装多个npm模块

来自分类Dev

区分同一Debian软件包的不同版本

来自分类Dev

需要一些帮助来解码流星软件包安装中的npm错误消息

来自分类Dev

为Debian构建一个软件包

来自分类Dev

构建一个Debian软件包

来自分类Dev

RxJS 5的@ reactivex / rxjs和rxjs NPM软件包

Related 相关文章

热门标签

归档