Столкнулся со странной проблемой: установил пакет fotorama в свой проект:
npm i fotorama --save
в папке node_modules новый пакет появился. Далее, т.к. в Laravel встроен сборщик, а мне всего лишь добавить 1 пакет надо, я решил что не буду городить gulp и т.д. а воспользуюсь тем что есть.
Я добавил в /resources/assets/sass/app.scss строчку:
// Fotorama
@import '~fotorama/fotorama.css';
Далее в /resources/assets/js/ создал файл fotorama.js:
try {
require('fotorama');
} catch (e) {}
а в файле app.js (в той же папке) дописал строчку:
require('./fotorama');
После проделанных операций я запустил сборку командой
npm run dev
И получаю такую ошибку:
> cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js
95% emitting
WARNING Compiled with 1 warnings 03:45:58
This dependency was not found:
* fotorama in ./resources/assets/js/fotorama.js
To install it, you can run: npm install --save fotorama
Asset Size Chunks Chunk Names
images/vendor/fotorama/fotorama.png?e95aace1dffd7b8683b30639b59614e2 3.22 kB [emitted]
images/vendor/fotorama/fotorama@2x.png?0f1f99b65c03fe9212ae7ab962d3b9df 7.32 kB [emitted]
/js/app.js 1.37 MB 0 [emitted] [big] /js/app
/css/app.css 203 kB 0, 0 [emitted] /js/app, /js/app
WARNING in ./resources/assets/js/fotorama.js
Module not found: Error: Can't resolve 'fotorama' in 'D:\OSPanel\domains\project.loc\resources\assets\js'
@ ./resources/assets/js/fotorama.js 2:4-23
@ ./resources/assets/js/app.js
@ multi ./resources/assets/js/app.js ./resources/assets/sass/app.scss
Почему так происходит? Занятно, что CSS он увидел и собрал в app.css файл стилей fotorama.css из пакета, а js-файл не видит...