littleguga
@littleguga
Не стыдно не знать, а стыдно не интересоваться.

Как правильно использовать node_modules на production?

Использую для сборки проекта gulp и некоторые его плагины, они установлены, как dev deps.

Как обычные зависимости установлены material-design-lite от гугла и jquery. И вот я задумался, как правильно их подключать в итоговом проекте?

У меня в веб морду сайта выведена папка dist/, в которой уже лежат собранные html, css, js, картинки.
Ставить node_modules внутрь или копировать(понятно, что не ручками, а gulp'ом) в папку dist из node_modules?
  • Вопрос задан
  • 878 просмотров
Решения вопроса 3
@fso
Собирать из node_modules в один файл (скрипты и стили отдельно), минифицировать, результат помещать в doc_root.
Можно собирать несколько файлов, по функционалу, и подключать пакетами по мере надобности.
Ответ написан
alexey-m-ukolov
@alexey-m-ukolov Куратор тега Веб-разработка
Я копирую только нужное: не хочу, чтобы наружу торчало всё, что есть в node_modules.
Ответ написан
Комментировать
yarkov
@yarkov
Помог ответ? Отметь решением.
У меня фронтенд в отдельной репе и к серверу подключается как git submodule, в папку frontend. Сервер на express.
├── frontend    <- сюда pull-ится фронтенд
        ├── bower_components
        ├── build    <- здесь собранный gulp-ом фронтенд
        ├── docs
        ├── gulp
        ├── node_modules
        ├── src
        ├── bower.json
        ├── gulpfile.js
        ├── package.json
        ├── README.md
        └── TODO.md
├── migrate
├── node_modules
├── server
├── VDS
├── frontend.sh
├── LICENSE
├── package.json
├── README.md
├── restart.sh
├── start.sh
├── stop.sh
└── TODO.md

Делаю так, чтобы отдавать статику:
const StaticPath = path.resolve(__dirname, '../frontend/build/');
// Указываем серверу из какой папки отдавать статику
app.use(express.static(StaticPath));
// Определяем путь к папке bower_components
app.use('/bower_components',  express.static(path.join(__dirname, '../frontend/bower_components')));
// Определяем путь к папке node_modules
app.use('/node_modules',  express.static(path.join(__dirname, '../frontend/node_modules')));

И просто подключаю файлы, как-будто папка bower внутри папки build
<link href="bower_components/font-awesome/css/font-awesome.min.css" rel="stylesheet">
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы