使用浏览器化加载远程脚本

Load remote scripts with browserify

本文关键字:脚本 程脚本 浏览器 加载      更新时间:2023-09-26

我真的很喜欢使用 cdnjs 在客户端加载 javascript,它使我的项目更小、更干净,并且加载所有内容的速度也更快。我目前使用 require.js 进行模块加载,它可以从 cdnjs 加载并填充传统脚本以轻松使用它。我最近一直在更多地研究浏览器化作为一种替代方案,虽然我确实找到了 browserify-shim,它可以像 require 一样填充非 cjs 模块,但我很好奇是否有办法使用 browserify 从远程源加载脚本,或者您是否无论如何都必须在本地安装所有内容。

如果答案是你必须通过 npm 在本地安装所有内容,这会让事情变得有点奇怪。一方面,您可以将node_modules添加到.gitignore文件中,而不必担心在使用package.json时将所有 deps 保留在版本控制上,但另一方面,您需要在部署时将模块放回那里,这意味着一个额外的部署后步骤将运行npm install并且该节点需要安装在您要部署到的任何地方, 这对我来说似乎也有点尴尬,尤其是对于静态网站。

真的,关于此的任何想法或讨论都会很棒:)

我的想法是这样的,你有三个选择:在部署之前在本地连接JS文件(浏览器化),实时加载它们(require.js),或者两者兼而有之。公平地说,您也可以使用 require.js 将文件与 r.js 连接起来。至少对我来说,我喜欢浏览器化的设计方式,以使用与npm模块相同的语法和心态。我认为最终你的经历并不重要。如果所有代码都打包在一起,你部署,并且没有任何依赖项,对我来说似乎是一个胜利。此外,我认为这更符合 Java 和类似的编译语言正在做的事情,即将所有 deps 放在一个可部署的包中。我知道我提到了Java,但不要让它吓到你,因为实际上我们都从周围人的想法中受益,甚至是我们认为我们不喜欢的语言。如果我不得不赌我的钱,我会赌 browserify,因为它提供了(我认为)是一种更成熟的处理模块的方法(按基于文件而不是语法组织)。npm 还为我们提供了一种分享代码的好方法,因此请为它们竖起大拇指。