Презентация:
Я создал шаблон администратора (css + js) и загрузил его в npm. Пакет содержит скомпилированные файлы css / js в папке «dist» и файлы scss в папке «build». Пакет имеет несколько зависимостей, которые перечислены как devDependencies
в package.json
:
"devDependencies": {
"datatables.net": "^1.10.19",
"dropzone": "^5.5.1",
"laravel-mix": "^4.0.13",
...
}
Нет dependencies
, что я считаю правильным, потому что я напрямую использую скомпилированные css / js (js - просто код jQuery).
Файл admin.scss
содержит все импорта :
@import 'abstracts/variables';
@import
'~datatables.net-bs4/css/dataTables.bootstrap4.min.css',
'~easymde/dist/easymde.min.css',
'~flatpickr/dist/flatpickr.min.css',
'~jasny-bootstrap/dist/css/jasny-bootstrap.min.css',
'~selectizebootstrap/dist/css/selectize.bootstrap4.css';
@import
'components/alerts',
'components/cards';
Я использую пакет администратора в проекте PHP (Laravel). Пакет администратора входит в devDependencies
моего проекта PHP. Файл admin.css
включен в файл php.scss
:
@import '../../node_modules/admin-template/dist/css/admin.css';
Проблема:
Мне нужно изменить некоторые переменные в файле admin.scss
. Итак, вместо включения скомпилированного css
мне нужно включить scss
:
@import '../../node_modules/admin-template/build/scss/admin';
Если я это сделаю, я получу ошибки, потому что шаблон администратора devDependencies
не установлен в моем node_modules
.
Если сделать npm install
в папке шаблона администратора, будет создана папка node_modules
, и все зависимости будут установлены внутри этой папки.
Но ошибки не исчезают, я думаю, это из-за tilde
, используемого при импорте файла scss: @import '~datatables.net-bs4/css/dataTables.bootstrap4.min.css'
. Он ищет файлы в корневой папке (не в пакете).
Что мне делать?
- Добавить весь шаблон администратора
devDependencies
как devDependencies
моего проекта PHP? Не кажется правильным.
- Вывести шаблон администратора
devDependencies
как dependencies
, поэтому, когда я устанавливаю пакет, все зависимости также устанавливаются? Не кажется правильным, это devDependencies
.
- Удалить
tilde ~
из всех @imports
в файле admin.scss
? Поэтому, если мне нужно напрямую включить scss, мне нужно сделать npm install
внутри пакета. И если у меня уже установлены некоторые из этих пакетов в моем node_modules
, их будет вдвое больше.
- Есть еще варианты?