使用 Browserify 编译 NPM 包

Compile NPM package with Browserify

我需要在非节点应用程序中使用 NPM 包 (fit-file-parser) 的功能。到目前为止,我已经试过了

  1. 下载包,构建它,并将输出包作为脚本标签包含在内。这里的问题是构建的包 dist/ 包含 4 个文件,每个文件都通过 require() 使用模块。大多数情况下,它们相互依赖,所以我想我可以按正确的顺序包括它们,但一个取决于 buffer.
binary.js
fit-parser.js
fit.js
messages.js
  1. 运行 dist/ 目录通过 Browserify 生成一个 package.bundle.js 文件并包含 that 作为脚本标签。这似乎 运行 没有错误,但我需要实例化我需要的逻辑的主要功能在浏览器中不存在。实际上,none 运行 直接加载文件时存在的全局变量在包含捆绑文件后存在。
browserify fit-parser.js -o fit-parser.bundle.js

要使用这个包,需要能够使用 new FitParser({...options}) 实例化一个新的 FitParser。此函数来自 fit-parser 文件,但我似乎无法将其放入浏览器的全局范围内。

NPM 包通常是模块,因此它们通常不会影响全局。

通常你会做类似 ->

const FitParser = require("fit-parser");

import {FitParser} from "fit-parser"

现代浏览器现在支持第二个选项,因此理论上您可以使用该选项而不使用 browserfy。

但是如果你想用老式的方式,用一个全局的。这就是 --standalone {exportname} 选项的用途。 {exportname} 一直是你想在全球范围内称呼它。基本上它是在脚本中执行 window.FitParser = FitParser