使用Browserify编译NPM软件包

时间:2019-04-30 15:34:05

标签: javascript node.js browserify es6-modules

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

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

要使用此程序包,必须能够使用FitParser实例化新的new FitParser({...options})。此功能来自fit-parser文件,但我似乎无法将其纳入浏览器的全局范围。

1 个答案:

答案 0 :(得分:0)

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

通常您会做类似->

的操作
const FitParser = require("fit-parser");

import {FitParser} from "fit-parser"

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

但是如果您想使用老式的方法,请使用全局方法。这就是--standalone {exportname}选项的用途。 {exportname}是您要在全球范围内称呼的。基本上,这是在脚本中进行window.FitParser = FitParser的操作。