我需要在非 Node 应用程序中使用 NPM 包 ( fit-file-parser ) 的功能。到目前为止,我已经尝试过了
- 下载包,构建它,并将输出包作为脚本标记包含在内。这里的问题是,构建的包
dist/
包含 4 个文件,每个文件都通过require()
使用模块。大多数情况下,它们相互依赖,所以我想我可以按照正确的顺序包含它们,但其中一个依赖于buffer
。
binary.js
fit-parser.js
fit.js
messages.js
- 通过 Browserify 运行
dist/
目录以生成package.bundle.js
文件并将该包含为脚本标记。这似乎运行没有错误,但我需要实例化所需逻辑的主要函数并不存在于浏览器中。实际上,在包含捆绑文件后,直接运行文件时出现的全局变量都不存在。
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
。
关于javascript - 使用Browserify编译NPM包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55924338/