Компиляция нескольких пакетов скриптов с использованием NPM и Watchify

У меня есть проект, в котором я хотел бы скомпилировать отдельные пакеты сценариев - один основной, который включается на каждой странице, и набор отдельных пакетов, которые будут включаться только на определенных страницах.

У меня есть сценарий NPM, который выглядит следующим образом:

"build-site": "watchify Scripts/site.js -o Scripts/bundle.js -v -d .",
"build-student": "watchify Scripts/modules/student.js -o Scripts/student_bundle.js -v -d .",
"start": "npm run build-site | npm run build-student",

Итак, я бегу npm start и Watchify включается и начинает смотреть файлы. Эта часть работает достаточно хорошо.

Всякий раз, когда я вносил изменения в модуль студента, оба файла перекомпилировались (без проблем), но когда я смотрю страницу в браузере, я получаю сообщение об ошибке, что модуль 'site.js' не может быть найден.

Если я затем захожу в файл site.js и что-то изменяю, происходит перекомпиляция, но на этот раз она хорошо работает в браузере.

Итак, суть в том, что когда я пытаюсь скомпилировать один файл, мне нужно внести изменения в другой, чтобы заставить его правильно скомпилироваться. Мне кажется, что то, как я это делаю, нестабильно, но я не могу найти много информации о связывании нескольких файлов с Watchify.

Подводя итог, мой вопрос: Как я могу скомпилировать несколько пакетов с Watchify таким образом, чтобы избежать вышеуказанной проблемы?

2 ответа

Решение

Проблема, кажется, была довольно простой в конце. Один из файлов, которые я пытался скомпилировать, фактически был включен в другой файл.

Я подозреваю, что происходило site.js компилировался и блокировался npm, затем компилировался student.js начинал раньше site.js был готов.

Я исправил это, удалив избыточность и не компилируя site.js само собой. Теперь он включается student.js и я просто включаю student_bundle.js на странице вместо обоих site.js А ТАКЖЕ student_bundle.js,

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

Вы не добавили структуру каталогов.

Должно ли это быть

"build-site": "watchify Scripts/modules/site.js -o Scripts/bundle.js -v -d ."

изменение пути site.js от сценариев / файла к сценарию / модулю / файлу

Не могу быть уверен, я не вижу макет каталога.

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