我经常制作小型开源工具,但我不想限制我的用户。我的软件包通常只是一个功能,所以这就是我希望用户得到的:
src
的script
标签。该脚本应该添加我的函数,以便他们可以在下面的脚本中调用它。对于根本不想使用包管理器的用户很有用:<script src="https://amazingCDN.com/isEven.js"></script>
<script>
isEven()
</script>
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] 删除。
我来说两句