Gulp Django Oscar 3.1.6 Frobshop资产的生成失败

Gulp Django Oscar 3.1.6 Frobshop资产的生成失败,gulp,django-oscar,django-assets,Gulp,Django Oscar,Django Assets,我正在为django oscar工作 django oscar的documentation在定制资产方面相当简洁,只是增加了混乱。这是我手动复制文件和编译资产的尝试(失败) 我在/var/work/django/Frobshop/中安装了Frobshop 我在/var/work/django/oscar/中为django-oscar安装了一个虚拟环境,因此发行版的资产目录位于该目录下的lib/python3.8/site-packages/oscar/static/oscar/中。该目录中的RE

我正在为django oscar工作

django oscar的
documentation在定制资产方面相当简洁,只是增加了混乱。这是我手动复制文件和编译资产的尝试(失败)

我在
/var/work/django/Frobshop/
中安装了Frobshop

我在
/var/work/django/oscar/
中为
django-oscar
安装了一个虚拟环境,因此发行版的资产目录位于该目录下的
lib/python3.8/site-packages/oscar/static/oscar/
中。该目录中的
README.rst
文件指出,在构建您自己的项目时,不建议直接使用包中的这些文件。相反,您应该获取“`oscar/static/oscar``文件夹的静态副本,并将其提交到您的项目中。

似乎很简单,所以我键入:

$cd/var/work/django
$mkdir frobshop/frobshop/static/
$cp-a lib/python3.8/site packages/oscar/static/oscar/*frobshop/frobshop/static/
接下来,
README.rst
说:
您可以使用make-target:make-assets从项目的根目录编译静态资产

$make资产
make:**没有将目标设定为“资产”的规则。停止
嗯,那没用。我想知道,是不是正确的
Makefile
,它应该放在哪里

$wget-O frobshop/static/Makefile\
https://raw.githubusercontent.com/django-oscar/django-oscar/master/Makefile
运行
makeassets
时,我收到一条错误消息,抱怨缺少
package.json
,因此我也从
django oscar
那里获取了它

$wget-O frobshop/static/package.json\
https://raw.githubusercontent.com/django-oscar/django-oscar/master/package.json
似乎我应该从新的
frobshop/frobshop/static/
目录运行
make

$(cd frobshop/static/;制作资产)
安装了许多文件,最后出现了以下消息:

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
接着说:
如果您在开发过程中对奥斯卡的资产进行了更改,您可以运行“npm run watch”来自动监视和编译更改。

$(cd frobshop/static/;npm run watch)

当然,这只会产生与以前相同的错误消息。

src/oscar/static\u src/oscar/README.rst
中提到的编译资产的说明(使用运行Gulp任务的
make assets
)实际上只适用于开发/打包
django-oscar
本身。我们将努力使文件更加清晰

对于基于django oscar的项目/商店,只需运行
/manage.py collectstatic
,即可使用oscar的静态文件而不进行修改,如下所述:


要修改和覆盖奥斯卡的静态文件,您还需要运行
/manage.py Oscar\u fork\u statics
,将奥斯卡的静态文件复制到项目中。该命令当前已中断,但我们正在解决一个问题:

如何手动将Oscar的静态文件复制并覆盖到我的项目中,而不尝试使用已中断的
/manage.py Oscar\u fork\u statics
?当我更改SCSS文件时,即使在重新加载后,它也不会反映在呈现的页面上。一些框架(如Jekyll)自动重建SCS。如何对SCS进行可见更改?@MikeSlinn要手动复制Oscar静态文件,只需:
$cp-a lib/python3.8/site packages/Oscar/static/*frobshop/static/
。然后将
/var/work/django/frobshop/static/
添加到
静态文件中。
oscar\u fork\u statics
的修复程序现在位于
master
分支中:.@MikeSlinn oscar使用SCSS文件构建
oscar/css/styles.css
oscar/css/dashboard.css
(它实际使用的)。如果要修改SCSS文件,则需要为项目设置此类建筑基础结构。如果您想使用Gulp,您可以看看奥斯卡本身是如何做到这一点的:。甚至还有一个任务可以监视SCSS文件中的更改,并自动重建CSS。