Структура проекта при использовании VueJS, VuelidateJS с NodeJS / Express

Моя веб-разработка - это в основном сайты интрасети и веб-интерфейсы для встраиваемых устройств с использованием NodeJS.

Моя текущая структура - все в одном пакете NPM. Я запускаю NodeJS за Nginx и позволяю Nginx обслуживать файлы javascript css / image / на стороне клиента непосредственно с public.

Я начинаю использовать VueJS и Vuelidate, оба из которых используют теперь систему модулей ES6 - например, import { required, minLength } from 'vuelidate/lib/validators'.

Хотя я (довольно хакерски) заставил это работать с моей текущей структурой, я думаю, что пришло время окунуться в мир сборочных систем / сборщиков Javascript.

Если я использую предпочтительный вариант WebPack для VueJS, как мне изменить структуру кода?

  • Должен ли я иметь один пакет NPM для внешнего интерфейса (сгенерированный vue-cli init), а другой - для серверного приложения Express?

  • Должен ли я поместить свое приложение Express в сгенерированный пакет внешнего интерфейса Vue?

  • Должен ли я использовать browserify для выполнения работы WebPack и оставаться с моей существующей структурой?

  • Или что-то совсем другое?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
436
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я не понимаю, почему вы собираетесь поместить свой код JavaScript в другие пакеты. Если у вас есть приложение, вы можете хранить там свои необработанные файлы JavaScript вместе со сценариями сборки. Кто-то должен иметь возможность проверить ваше приложение и создать его.

Если вы хотите начать работу с системой сборки, то хорошим «мостом» может быть использование Mix, проекта, созданного Laravel для создания интерфейсных ресурсов, таких как Sass и JavaScript. Он использует Webpack под капотом, но, в свою очередь, предоставляет более удобный и гибкий API.

Если вы пойдете по этому пути, вы можете поместить свои необработанные файлы JavaScript в каталог lib / или src /. Затем вы можете использовать Mix для компиляции этих компонентов следующим образом:

mix.js('lib/your-entry-point-script.js', 'public/js/app.js');

Ваш сценарий точки входа будет просто сценарием, который require объединяет все ваши другие сценарии и компоненты, а также сценарием, который вы хотите «построить». Затем Mix скомпилирует это и поместит результирующий скрипт в общедоступный / js / app.js.

Сам Mix - это просто пакет npm, поэтому все, что вам нужно сделать, это npm install laravel-mix --save-dev.

Вы можете узнать больше о Mix на https://laravel.com/docs/5.7/mix

В этой статье создаются два пакета NPM: «клиентский» и «серверный». medium.com/@anaida07/mevn-stack-application-part-1-3a27b61dc‌ ae0

fadedbee 05.11.2018 10:20

@fadedbee Итак…? Я бы создал отдельные клиентские и серверные пакеты только в том случае, если бы вы действительно собирались использовать их в нескольких отдельных приложениях. Если это одно и то же приложение, но интерфейс и серверная часть, просто храните код в одном репозитории.

Martin Bean 05.11.2018 11:10

Другие вопросы по теме