使用Sass与Django

时间:2018-01-18 18:10:08

标签: django sass node-sass

我正在寻找一个相当简单的工具集和工作流程,以便将Sass合并到我的Django项目中。我主要关注后端,刚刚开始调查Sass,所以请耐心等待。

我最初的想法是通过使用node-sass来保持简单,而不是尝试合并Gulp,django-pipeline或其他任何东西。

我的Django应用程序通常是这样构建的,即我在每个应用程序中创建一个static/app/css文件夹。我想一个选项现在是为scss文件创建一个额外的文件夹,即:static/app/scss。问题是,在生产中运行collectstatic时,也会收集scss文件。那么每个应用程序的scss文件应该保存在其他地方吗? (我想如果在collectstatic运行时包含scss文件并不重要吗?)

接下来,在我的Django项目文件夹之外,我会创建一个文件夹来安装node-sass,因为我不想全局安装它而我不想要node-modules文件夹在我的Django项目或内部源代码控制中。

我想node-modules文件夹可以被认为是使用python virtualenv而不是全局安装包?

接下来,在我的Django项目的某个地方(不知道在哪里?)我将package.json文件包含我想要编译为css的每个scss文件的脚本部分,例如:

"scripts": {
    "compile:sass": "node-sass app1/static/app1/scss/style.scss app1/static/app1/css/style.css",
    "compile:sass": "node-sass app2/static/app2/scss/style.scss app2/static/app2/css/style.css",
    "compile:sass": "node-sass app3/static/app3/scss/style.scss app3/static/app3/css/style.css"
}

最后,我会运行带有watch标志的compile:sass来不断编译我工作的任何文件并将它们放在正确的文件夹中。

所以我的问题是,上面的设置是一个好的方法(至少最初如果我还没准备好添加另一个工具,如Gulp等混合)?

另外,我将如何运行compile:sass考虑到我的package.json文件将在某个地方的Django项目中,并且包含node-modules安装的node-sass文件夹将位于其他地方。

2 个答案:

答案 0 :(得分:0)

我帮助维护node-sass,所以我不会说不使用它。如果您正在使用Python,则可能需要查看替代的libsass-python。

答案 1 :(得分:0)

签出django-sass-processor软件包。它很容易配置和使用。我已经使用过几次,并且在使用方面有很好的经验。该软件包将Gulp抽象化,因此您不必担心它,并简化了整个过程。

这是有关how to integrate django-sass-processor的Django项目的教程。