В итоге я использовал второй подход, который я упомянул в своем вопросе, с одним небольшим поворотом - я инициализировал проект Vue в своем основном проекте.Я объединил их.
- Я открыл родительскую папку своего проекта в терминале.
- Я запустил
vue create my-project
, где my-project
было фактическим именем папки моего проекта.CLI спросил, следует ли перезаписать проект или объединить его.Я выбрал слияние. - После создания проекта мой старый
package.json
был перезаписан и в нем были указаны только зависимости Vue. - Я вернул свой старый
package.json
и установил эти пакеты: @vue/cli-plugin-babel
, @vue/cli-service
, vue-template-compiler
и vue
. Я добавил следующий скрипт npm в свой package.json
:
"scripts": {
"calculator": "vue-cli-service build assets/js/calculator/main.js --watch --dest assets/js/calculator/build"
}
Результат
Структура папок моего проекта осталась прежней, за исключением нескольких новых пакетов в node_modules
.Я поместил мои файлы компонентов в assets/js/calculator/
.Там у меня есть main.js
, который является сценарием основного компонента, и build
, который является папкой, содержащей обработанный компонент.
У меня есть:
<div id="calculator"></div>
на моей странице, и:
<script src="/assets/js/calculator/build/app.js"></script>
в нижнем колонтитуле.Когда я открываю страницу, компонент отображается правильно.
Чтобы изменить компонент, я просто запускаю npm run calculator
в терминале, который раскручивает службу CLI.Он отслеживает файл main.js
и строит компонент при каждом изменении.Когда сборка завершена (что происходит менее чем за секунду), я обновляю страницу, и обновленный компонент уже там.
Заключение
Я считаю, что это самый плавный способ обработки этого варианта использования.Это не раздуло проект, все зависимости были перечислены, и опыт разработки велик.Часть, где мои package.json
были перезаписаны, была немного волнующей, но кроме этого - она работала отличноЕсли есть лучший способ сделать это, пожалуйста, оставьте ответ!