Импорт сторонней библиотеки формата UMD в Svelte

#javascript #svelte #rollup #umd

#javascript #svelte #накопительный #umd

Вопрос:

Я использую этот шаблон svelte для создания своего приложения — degit sveltejs/template svelte-app .

Мне нужно импортировать стороннюю библиотеку, которая находится в формате UMD и нуждается в HTTP, HTTPS, querystring и т. Д. В любом случае, я изменяю свой package.json , чтобы включить эту библиотеку и импортировать ее, App.svelte используя приведенный ниже синтаксис:

 import { functionname } from 'mythirdpartylibrary/filenamewithoutexternsion';
 

Во время запуска npm run dev я получаю следующие предупреждения в терминале, и я не могу использовать функции, определенные в стороннем JS-файле:

 (!) Unresolved dependencies
https://rollupjs.org/guide/en/#warning-treating-module-as-external-dependency
https-proxy-agent (imported by  https-proxy-agent?commonjs-external)
url (imported by  url?commonjs-external)
http (imported by  http?commonjs-external)
querystring (imported by  querystring?commonjs-external)
https (imported by  https?commonjs-external)
(!) Missing global variable names
Use output.globals to specify browser global variable names corresponding to external modules

url (guessing 'require$0')
http (guessing 'require$1')
https (guessing 'require$2')
https-proxy-agent (guessing 'require$4')
 

И получите сообщение об ошибке ниже в консоли браузера:

 Uncaught ReferenceError: require$0 is not defined
    <anonymous> http://localhost:5000/build/bundle.js:481
 

Вот ручка кода, которая содержит уменьшенный файл javascript node_module для импортированной библиотеки — https://codepen.io/leenashah/pen/WNoQeXb

Комментарии:

1. Какую инструкцию import вы пытаетесь запустить? Было бы полезно, если бы вы указали имя пакета и то, что вы пытаетесь импортировать.

2. Не могли бы вы опубликовать свой rollup.config.js файл?

3. Приносим извинения за задержку. Я переключился на использование webpack для svelte вместо rollup и смог решить свою проблему. Я должен был добавить нижеприведенное к webpack.config.js чтобы заставить его работать с узлом: { child_process: ’empty’, fs: ’empty’, crypto: ’empty’, net: ’empty’, tls: ’empty’, },

4. @geoff-rich Вот ручка кода, которая содержит уменьшенный файл javascript node_module для импортированной библиотеки — codepen.io/leenashah/pen/WNoQeXb

5. Этот файл библиотеки содержит код типа require(‘url’), require(‘http’), require(‘https’), require(‘querystring’), который на самом деле не нужен нашему приложению. Итак, каков обходной путь, если нам нужны другие функции в библиотеке, но не указанный код require. Я предполагаю, что операторы require вызывают проблему при накоплении. Извините, я совсем не знаком с rollup или форматом библиотеки. Как я уже упоминал, мне пришлось добавить node: {child_process: ’empty’, fs: ’empty’, crypto: ’empty’, net: ’empty’, tls: ’empty’, } в webpack, чтобы заставить его работать. Есть ли эквивалент в rollup ?