使用 Browserify 编译 NPM 包
Compile NPM package with Browserify
我需要在非节点应用程序中使用 NPM 包 (fit-file-parser) 的功能。到目前为止,我已经试过了
- 下载包,构建它,并将输出包作为脚本标签包含在内。这里的问题是构建的包
dist/
包含 4 个文件,每个文件都通过 require()
使用模块。大多数情况下,它们相互依赖,所以我想我可以按正确的顺序包括它们,但一个取决于 buffer
.
binary.js
fit-parser.js
fit.js
messages.js
- 运行
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
。
我需要在非节点应用程序中使用 NPM 包 (fit-file-parser) 的功能。到目前为止,我已经试过了
- 下载包,构建它,并将输出包作为脚本标签包含在内。这里的问题是构建的包
dist/
包含 4 个文件,每个文件都通过require()
使用模块。大多数情况下,它们相互依赖,所以我想我可以按正确的顺序包括它们,但一个取决于buffer
.
binary.js
fit-parser.js
fit.js
messages.js
- 运行
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
。