Как я могу исключить модуль ES6 (VueJS) из дерева соединений в RollupJS? (а я должен?) - PullRequest
0 голосов
/ 26 июня 2018

Сейчас я извлекаю все свои собственные модули es6 и создаю пакет, используя Rollup.

Недавно я начал использовать VueJS, который теперь имеет модуль ES6, который можно вставлять так же, как мои собственные модули. Свертывание делает на нем несколько деревьев, но я не знаю, хорошая ли это идея? Я не знаю, что он делает, поэтому я бы предпочел, чтобы он ничего не делал!

Вместо этого я просто добавляю vue в конце моего HTML:

<script src="dist/bundle.js"></script>

Мне нравится удобство иметь все как один связанный файл, но должен ли я действительно трясти дерево всего приложения Vue, есть ли в Rollup команда, что я не могу трясти деревья только этим одним модулем?

EDIT

Я нашел опцию --external, которая, кажется, хороша, поскольку она просто сохраняет import для vue и связывает остальные, но, похоже, не работает!

Когда я использую rollup --format=iife --external=../node_modules/vue/dist/vue.esm.browser.js --file=dist/bundle.js -- src/main.js, он говорит Error: Could not resolve '../node_modules/vue/dist/vue.esm.browser.js' from src/app.js.

В моем main.js есть import Vue from '../node_modules/vue/dist/vue.esm.browser.js;, который прекрасно работает для приложения. Я хочу сделать Vue внешним, но оно не будет работать!

1 Ответ

0 голосов
/ 27 июня 2018

Чтобы Rollup не мог связать деревья с конкретным модулем, вы можете просто импортировать его вслепую (вместо части), чтобы Rollup думал, что модуль выполняет некоторый побочный эффект:

import 'vue'

Конечно, вы все равно можете импортировать некоторые биты параллельно, чтобы вы могли переименовать экспорт по умолчанию, например:

import 'vue'
import Vue from 'vue'

Что касается опции --external, вам, вероятно, просто нужно заключить значение пути в кавычки:

--external='../node_modules/vue/dist/vue.esm.browser.js'

Обратите внимание, что вам, вероятно, следует переключиться на файл конфигурации Rollup (вместо параметров CLI), чтобы облегчить вашу жизнь. Вы также сможете использовать плагины для накопительного пакета, например, rollup-plugin-alias для управления точным расположением файла Vue, который вы хотите использовать.

...