#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 ?