Скомпилируйте пакет NPM с Browserify - PullRequest
0 голосов
/ 30 апреля 2019

Мне нужно использовать функциональность пакета NPM ( fit-file-parser ) в приложении, не принадлежащем Node.До сих пор я пробовал

  1. Снять пакет, собрать его и включить выходной пакет в качестве тега сценария.Проблема в том, что встроенный пакет dist/ включает в себя 4 файла, каждый из которых использует модули через require().В основном они зависят друг от друга, поэтому я подумал, что могу просто включить их в правильном порядке, но один зависит от buffer.
binary.js
fit-parser.js
fit.js
messages.js
Запустите каталог dist/ через Browserify, чтобы создать файл package.bundle.js и включите , что , в качестве тега сценария.Кажется, это работает без ошибок, но основная функция, которая мне нужна для создания нужной логики, отсутствует в браузере.На самом деле, нет глобальных переменных, присутствующих при непосредственном запуске файлов, присутствуют после включения файла комплекта.
browserify fit-parser.js -o fit-parser.bundle.js

Чтобы использовать этот пакет, необходимо иметь возможность создания экземплярановый FitParser с использованием new FitParser({...options}).Эта функция взята из файла fit-parser, но я не могу включить ее в глобальную область видимости браузера.

1 Ответ

0 голосов
/ 01 мая 2019

Пакеты NPM, как правило, являются модулями, поэтому они обычно не влияют на глобальные.

Обычно вы делаете что-то вроде ->

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

или

import {FitParser} from "fit-parser"

Второй вариант теперь поддерживается в современных браузерах, поэтому теоретически вы можете использовать этот параметр и не использовать browserfy.

Но если вы хотите использовать старомодный способ, с глобальным. Для этого используется опция --standalone {exportname}. {exportname} было то, что вы хотите назвать в глобальном масштабе. В основном это что-то вроде window.FitParser = FitParser внутри скрипта.

...