[Django] 如何在Django中使用前端工具链
2021-05-19 本文已影响0人
alue
Django最大的不足在于其落后的前端工具链。现在前端开发几乎必备的包管理器(例如npm,yarn)以及工程化必备的webpack工具链,Django却不支持。Django开发的工作流中,后端的包管理可以用pip,而前端的包只能手动管理。所以,我最近的工程项目中,已不再使用Django提供的前端模块,仅仅把它当作API服务器。这的确很遗憾,因为Django的template引擎也有一些易用的特性,如此抛弃,真的有点不舍。那么有没有可能结合二者的优点呢?
django-webpack-loader
和webpack-bundle-tracker
经过一番探索,网上给出最靠谱的答案就是利用django-webpack-loader
和webpack-bundle-tracker
这两个插件。其原理是webpack-bundle-tracker
能够输出webpack的编译过程以及结果。django-webpack-loader
插件则是Django和webpack之间的桥梁,利用上面的编译结果,自动加载webpack打包后的静态文件。
需要用webpack生成的静态文件时,就在template上面使用下面一段模板语言,能够自动完成静态文件的注入。
{% load render_bundle from webpack_loader %}
{% render_bundle 'main' %}
简单的试了试,应该能够达到我想要的效果,明天有时间再研究。