Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Heroku上的webpack和django:收集前的捆绑_Python_Node.js_Django_Heroku_Webpack - Fatal编程技术网

Python Heroku上的webpack和django:收集前的捆绑

Python Heroku上的webpack和django:收集前的捆绑,python,node.js,django,heroku,webpack,Python,Node.js,Django,Heroku,Webpack,我正在Heroku上构建一个django+react应用程序,使用django npm,它自动将package.json中的所有模块安装到节点模块dir,然后在python manage.py collectstatic期间将所有内容复制到staticfiles/(在部署期间由Heroku触发) 但是,为了使此配置起作用,我需要在部署前预绑定我的React应用程序,并将其与所有CSS、字体等一起放入我的static文件夹中,以便稍后由collectstatic拾取 但我不想用新的捆绑包版本污染我

我正在Heroku上构建一个django+react应用程序,使用
django npm
,它自动将
package.json
中的所有模块安装到
节点模块
dir,然后在
python manage.py collectstatic
期间将所有内容复制到
staticfiles/
(在部署期间由Heroku触发)

但是,为了使此配置起作用,我需要在部署前预绑定我的React应用程序,并将其与所有CSS、字体等一起放入我的
static
文件夹中,以便稍后由
collectstatic
拾取

但我不想用新的捆绑包版本污染我的git差异。那么,有没有办法让webpack在部署期间创建一个包

我知道Heroku上有一个
release
命令,我可以将我的
npm运行build
。但问题是它只在
collectstatic
之后才会触发,因此我的包只有在扫描此文件夹后才会在
static/
文件夹中创建,并且不会复制到
staticfiles
目录。

更新: 从2019年3月11日起,不再需要使用
bin/pre_compile
。Heroku现在将在Heroku的构建过程中自动调用应用程序的
build
脚本(如果在
package.json
中定义)。来源:


Original:您可以通过
heroku/python
buildpack公开的(未记录的)
pre_compile
hook来实现这一点

在应用程序的顶层添加一个名为
bin/pre_compile
的可执行shell文件,它将作为构建过程的一部分

cd我的django应用程序
mkdir-bin
回音/usr/bin/env bash'>>bin/pre\u编译
回显“npm运行构建”>>bin/pre\u编译
chmod+x bin/pre_编译

为什么不在npm构建后在heroku发布命令中重新运行collectstatic。类似于
release:npm运行build&&python manage.py collectstatic