npm 包 standalone-module 使用教程

阅读时长 5 分钟读完

前言

在开发前端项目时,使用npm包已经成为了一个非常方便和标准的方式。一些实用的npm包,比如webpack、React等,已经成为前端开发推广中的标配。

然而,当我们需要在多个项目中使用同样的模块时,npm包的引入仍然需要考虑重复的安装和更新,这时候会显得比较麻烦。因此,如何减少依赖的安装和管理成为了热点。npm 包 standalone-module 就是为了解决这个问题而生的。

standalone-module 是什么

standalone-module 是一个可以通过 script 标签来引入的 npm 包。他把 npm 包内的模块转换为了一个具有全局访问能力的对象,类似于 jQuery 或 Lodash 等全局可用的 npm 包,可以在浏览器中直接使用,将这个连接在你的 HTML 页面上,无需任何构建工具或打包过程,就可以像使用标准 JavaScript 库一样使用它。

基本使用

安装

打包

在需要打包的模块中使用 standalone-module 命令:

其中,input 是您的 npm 包入口文件(通常是 index.js)的路径,output 是生成 JavaScript 文件的路径(包括文件名)。

例如:

该命令将 npm 包 axios 打包并存储至 axiosGlobal.js 文件中,以便后续使用。

引入

将打包后的 JavaScript 文件引入到 HTML 页面中:

在引入文件后,在全局作用域中就会存在一个名为 axios 的全局变量,您可以像下面这样使用:

高级用法

基本参数

standalone-module 可以使用一些选项来生成您需要的输出。常见的选项如下:

  • --name <name>,设置生成的全局变量的名称
  • --no-minify,关闭生成的输出的压缩
  • --sourcemaps,生成源映射
  • --umd,生成与 UMD 模块兼容的输出
  • --strict,生成 "use strict" 指令

例如,以下命令为 lodash 打包生成全局变量 "myLo":

添加依赖

如果您的模块依赖于其他模块,standalone-module 还提供了选项来添加它们。在这里,您也可以将自己的文件或文件路径添加到生成的文件中:

在这个例子中,我们以 myModule 为名称,将模块解析为根文件,将打包后的文件存储为 myModule.js。我们还将 react 和 redux 设置为全局变量 (alias),并添加了 file1.js 和 path/to/file2.js 文件。

添加外部依赖

如果您的模块依赖于外部文件,可以使用 standaloneModule.registerExternalDependency() API 将其添加到生成的文件中。

例如,在以下代码中,我们使用该 API 将 jQuery 添加到依赖项中:

-- -------------------- ---- -------
--------- -------- -------- -
  ------ ------- --- -------- -- ------ ------ --- ----------- - -------------- - ---------------------------- -------------- -
  ------ ------ --- ---------- -- ---------- - ------------------- ---------- -------- -
  ---------------- - ------------------------ ----------------
------- --------- ---------- -- - ---- --------

-- ------ ----

-----

使用示例

下面是一个完整的使用 axios 和 jQuery 的示例:

在页面中引入:

结论

standalone-module 提供了一种简单的方法,使我们能够快速在浏览器中使用 npm 包的模块。但是,只有在必须要这样做时才应该使用它,如在有限的环境中开发、测试或构建专用库时。对于大多数项目,使用构建工具(如 Webpack)来处理您的依赖项更安全、更可维护、更高效。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005642581e8991b448e1531

纠错
反馈