#javascript #npm #capacitor #rollup
Вопрос:
Я приношу извинения, но мое незнание того, как создавать современные приложения на Javascript, показывает это.
У нас есть приложение-конденсатор, которое использует простой Javascript, без каких-либо инструментов сборки. Это прекрасно работает. Мы пытаемся добавить поддержку Microsoft Code Push через https://github.com/mapiacompany/capacitor-codepush, и мы сталкиваемся с проблемой, как интегрировать его в наше приложение.
Для конденсатора и его плагинов мы используем теги для включения plugin.js файлы из различных каталогов node_modules/…/dist.
Если мы сделаем это с node_modules/capacitor-codepush/dist/plugin.js, мы получаем ошибку о пропущенных приобретениях. В том числе node_modules/code-push/script/acquisition-sdk.js это не помогает.
Хорошо, так, может быть, есть куча зависимостей? Мы попытались использовать накопительный пакет, чтобы посмотреть, сможем ли мы заставить это работать, но не смогли. Используя этот простой входной файл:
import { codePush } from 'capacitor-codepush';
console.log("hello");
мы получаем [!] Error: Invalid value "iife" for option "output.format" - UMD and IIFE output formats are not supported for code-splitting builds.
Любая помощь будет признательна.
Комментарии:
1. Что такое простое приложение на JavaScript? Как вы им управляете?
2. Используя простое приложение javascript, я просто говорю об одном файле .js, без перекодирования, ничего. Этим управляет конденсатор, но я думаю, что проблема, с которой я столкнулся выше, более общая, чем эта. Для проекта code push, как я могу включить/упаковать его только с этим 2-строчным примером файла javascript, чтобы он выполнялся без пропущенных объектов или других ошибок.
3. @MarkFletcher Если проблема является более общей, можете ли вы предоставить более общее (и минимальное, если возможно) представление проблемы с кодом? например, создайте репозиторий, суть или скрипку и рекомендации по запуску (при необходимости).
Ответ №1:
Единственный способ, которым я смог заставить его работать, — это переключиться на использование webpack
. По причинам, которые я не понимаю, мои первоначальные попытки использовать rollup
не сработали. webpack
это был ключ.
Ответ №2:
Вы должны запустить dist
версию своего приложения. Это означает, что вы должны использовать такой пакет, как webpack
. Разукрупненный (чистый) код не может использовать эти функции.
Комментарии:
1. Как я уже упоминал, я попытался использовать накопительный пакет вместе с этим 2-строчным входным файлом. Чем бы отличался webpack?
2. Иногда становится головной болью связывать популярные библиотеки в js, такие как axios, с накопительным пакетом из-за конфигураций и плагинов. Требуется некоторое исследование, дополнительные плагины, которые могут привести к большой работе. Вот почему webpack в течение многих лет был стандартным комплектовщиком посылок с последующим банкоматом. @MarkFletcher