Избегайте запуска команды webpack на подмодулях - PullRequest
0 голосов
/ 01 октября 2018

У меня проблема здесь.У меня есть Webpack Project X, у которого есть другой проект Webpack Y в качестве зависимости.В то время как Project X является окончательным проектом приложения, Project Y является типом проекта библиотеки Webpack, выходные данные для Project Y представляют собой файл .js, файл .css и набор изображений.Структура более или менее похожа на это: </p> <pre><code>Project_X/ └─ node_modules/ └─ dist/ └─ src/ └─ css/ └─ img/ └─ js/ └─ index.ejs └─ lib/ └─ Project_Y <— This is an inner webpack project added as a git submodule └─ node_modules/ └─ dist/ └─ src/ └─ package-lock.json └─ package.json └─ webpack.config.js └─ package-lock.json └─ package.json └─ webpack.config.js

И у Project X, и у Y есть свои собственные сценарии npm для создания своих собственных выходных файлов.Идея состоит в том, чтобы запустить npm run build в Project X, поэтому все файлы src в Project X обрабатываются и выводятся в папку Project X dist.После этого планируется собрать проект Y и переместить его файлы .js .css и изображения в папку dist Project X.

Мой основной подход к выполнению этой работы - запустить команду сборки в Project X (npm run build) подождите, пока все выходные файлы не будут сгенерированы в папке dist Project X, а затем с помощью плагина Webpack Shell (плагина webpack, который позволяет запускать любые команды оболочки до или после сборки webpack) запустите команду сборки Project Y(npm run build), когда он заканчивает, переместите все свои сгенерированные файлы (файлы .js, .css и изображения) в папку dist Project X.

Проблема возникает при запуске npm run build в Project X, он запускает процесс сборки для Project X (что нормально), но он также автоматически запускает ту же команду в каталоге Project Y, но с использованием зависимостей от Project X, поэтому выдает ошибку, поскольку все загрузчики и зависимости, необходимые для проекта Yвыполняется поиск в каталоге Project X, а не в каталоге Project Y, где они существуют.

Сначала я думал, что проблема связана с командами npm, но после некоторого теста я понял, что проблема в команде webpack (мой скрипт npm run build запускает команду webpack).

Как мнево избежание выполнения команды npm run build, выполняемой на корневом уровне Project X, также выполняется для проекта Y?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...