javascript - 使用Browserify编译NPM包

标签 javascript node.js browserify es6-modules

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

  1. 下载包,构建它,并将输出包作为脚本标记包含在内。这里的问题是,构建的包 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/

    相关文章:

    javascript - 如何检查服务人员是否离线?

    node.js - NodeJS语法错误: Unexpected string in JSON at position 16

    mysql - 从索引表中高效查询

    node.js - 用于单元测试文件观察器库的模拟文件系统

    node.js - Browserify 捆绑输出非常大,无法找到调试过程的方法

    javascript - Browserify 与 Usemin

    node.js - 如何使用 Node 和 browserify 实现 jQuery.panzoom

    javascript - Vuejs : loading topojson from store and plot with d3

    javascript - 表格在不同屏幕尺寸上看起来不统一

    javascript - ajax 处理空结果,JQuery