Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在NPM上捆绑和发布客户端web代码_Javascript_Node.js - Fatal编程技术网

Javascript 在NPM上捆绑和发布客户端web代码

Javascript 在NPM上捆绑和发布客户端web代码,javascript,node.js,Javascript,Node.js,我制作了一个Javascript文件。假设它的内容是这样的: let myCoolAlert=(str)=>{ 警报(str) } //在另一个js文件中(据我所知,不允许您跨文件) 麦考拉勒特(“你好,世界!”)要捆绑客户端代码并通过NPM发布,您需要做几件事:,并编写一些可以使用的代码。这意味着使用模块。导出或导出来公开您的库,具体取决于您是要使用CJS还是ESM。库的使用者通常可以假设使用Webpack、Fuse、Rollup或其他一些知道如何处理模块的绑定器 您还可以使用像Rollup

我制作了一个Javascript文件。假设它的内容是这样的:

let myCoolAlert=(str)=>{
警报(str)
}
//在另一个js文件中(据我所知,不允许您跨文件)

麦考拉勒特(“你好,世界!”)
要捆绑客户端代码并通过NPM发布,您需要做几件事:,并编写一些可以使用的代码。这意味着使用
模块。导出
导出
来公开您的库,具体取决于您是要使用CJS还是ESM。库的使用者通常可以假设使用Webpack、Fuse、Rollup或其他一些知道如何处理模块的绑定器

您还可以使用像Rollup yourself这样的工具为不同的目标构建和绑定库,并对其应用各种转换()。随着库不可避免地变得越来越大,使用这样的绑定器变得越来越有意义


使用这样的模块,而不是通过CDN分发,或者以其他方式将库代码放在全局/窗口对象上,通常更好地用于复杂应用程序、大型应用程序和/或已使用Webpack等工具构建的应用程序(因此,任何用React、Angular、Vue等编写的应用程序).但是对于像您的库这样的东西来说,拥有CDN发行版仍然是一个好主意,因为它很可能会被使用jQuery和vanilla JS构建网站的人使用。

所以您希望在安装包时能够使用本地下载的JavaScript部署静态页面?我认为这不可行,因为静态文件e需要在您的软件包中。您可以尝试包含一个可以在本地托管文件的开发服务器,在这种情况下,您仍然可以继续使用CDN,并让开发服务器指向缓存的CDN页面URL。@AbrarHossain感谢您的响应!如果用户通过NPM安装CDN,我不希望用户使用CDN,我希望他们托管它,以便他们可以使用eir自己的版本(而不是CDN)。这可能吗?您必须向包中添加一个Web服务器。您可以使用节点的一部分,也可以使用一些其他模块,如。但似乎有点过头了……是的。您可以检查
http服务器
包。它可以在本地主机上快速部署静态站点。抱歉,这毫无意义。您正在构建webdevelopers将包含在网站/webapp中的模块,对吗?使用您的模块的webdeveloper到底为什么要启动一个额外的Web服务器来托管您的模块?典型的工作流是在网站/webapp项目中安装您的模块,以便在开发过程中使用任何Web服务器都可以为其提供服务或者从CDN中包含它。非常感谢。我有一些使用WebRTC的原生JS代码,我也捆绑了它们,这能用吗?我问这个问题的唯一原因是因为我想知道这是否适用于web原生代码,比如RTPeerConnection。谢谢!是的,webpack或rollup肯定可以用于特定于web的API。配置ht需要一些调整来避免引用错误,测试变得更复杂一些,但是大多数为web构建包的人都使用类似Rollup或Webpack的工具来捆绑这些库。