Ошибка сборки для Django-Oscar 3.1.6 Активы Frobshop
Я работаю над примером проекта Frobshop для.
Документация относительно настройки активов довольно краткая, а нерешенная ошибка, о которой я сообщил для <tcode id="373794"></tcode>только добавляет путаницы. Это моя (неудачная) попытка копирования файлов вручную и компиляции ресурсов.
Я установил виртуальную среду в
/var/work/django/oscar/
, поэтому каталог ресурсов для распространения находится в этом каталоге в
lib/python3.8/site-packages/oscar/static/oscar/
. Файл в этом каталоге сказал
When building your own project, it is not recommended to use these files straight from the package. Rather, you should take a static copy of the ``oscar/static/oscar`` folder and commit it into your project.
Это показалось простым, поэтому я набрал:
$ cd /var/work/django
$ mkdir frobshop/frobshop/static/
$ cp -a lib/python3.8/site-packages/oscar/static/oscar/* frobshop/frobshop/static/
Далее сказал:
You can compile the static assets from the root of the project using a make target: make assets
. Хм, не сработало:
$ make assets
make: *** No rule to make target 'assets'. Stop.
Является ли https://github.com/django-oscar/django-oscar/blob/master/Makefile надлежащее
Makefile
, Интересно, а где он должен быть расположен?
$ wget -O frobshop/static/Makefile \
https://raw.githubusercontent.com/django-oscar/django-oscar/master/Makefile
Бег
make assets
выдал мне сообщение об ошибке с жалобой на отсутствие
package.json
, поэтому я взял его также.
$ wget -O frobshop/static/package.json \
https://raw.githubusercontent.com/django-oscar/django-oscar/master/package.json
Казалось, я должен бежать
make
из нового
frobshop/frobshop/static/
каталог:
$ (cd frobshop/static/; make assets)
Было установлено много файлов, потом в итоге появилось такое сообщение:
found 3 vulnerabilities (2 moderate, 1 high)
run `npm audit fix` to fix them, or `npm audit` for details
npm run build
> django-oscar@3.0.0 build /var/work/django/frobshopCamille/frobshop/static
> gulp copy && gulp scss
[11:32:39] No gulpfile found
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! django-oscar@3.0.0 build: `gulp copy && gulp scss`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the django-oscar@3.0.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/mslinn/.npm/_logs/2021-02-19T16_32_39_097Z-debug.log
make: *** [Makefile:29: assets] Error 1
Я не знаю, что делать с этой ошибкой. Я вижу каталог в
django-oscar
называется
gulpfile.js
. Следует ли мне скопировать и это где-нибудь?
README.rst
продолжал говорить:
If you make changes to Oscar's assets in development, you can run ``npm run watch`` to automatically watch and compile changes to them.
$ (cd frobshop/static/; npm run watch)
Конечно, это просто приводит к тому же сообщению об ошибке, что и раньше.
1 ответ
Инструкции по составлению ассетов (с использованием
make assets
, который запускает задачи Gulp), упомянутые в
src/oscar/static_src/oscar/README.rst
на самом деле предназначены только для разработки / упаковки
django-oscar
сам. Постараемся сделать документацию более понятной.
Для проекта / магазина на основе django-oscar вам нужно только запустить
./manage.py collectstatic
, чтобы использовать статические файлы Oscar без изменений, как указано здесь: https://django-oscar.readthedocs.io/en/latest/howto/how_to_handle_statics.html#customising-statics
Чтобы изменить и переопределить статические файлы Оскара, вам дополнительно необходимо запустить
./manage.py oscar_fork_statics
, чтобы скопировать статические файлы Оскара в свой проект. Команда в настоящее время не работает, но мы работаем над исправлением: https://github.com/django-oscar/django-oscar/pull/3657