Twitter bootstrap 修改变量后动态重新导入Sass部分

Twitter bootstrap 修改变量后动态重新导入Sass部分,twitter-bootstrap,sass,Twitter Bootstrap,Sass,我正在做一个项目,利用用Sass预编译的Twitter引导 每次重写变量时,我都必须将\u bootstrap.sass文件重新导入到我的项目主样式表中,以使重写生效 你知道如何使这个过程自动化,这样每次我修改一个变量时,它就会立即生效吗 为了进一步澄清,这是我的目录结构: /project /custom-sass /boot.scss -> This is where _bootstrap.scss is imported /glob.scss /dev

我正在做一个项目,利用用Sass预编译的Twitter引导

每次重写变量时,我都必须将
\u bootstrap.sass
文件重新导入到我的项目主样式表中,以使重写生效

你知道如何使这个过程自动化,这样每次我修改一个变量时,它就会立即生效吗

为了进一步澄清,这是我的目录结构:

/project
  /custom-sass
    /boot.scss -> This is where _bootstrap.scss is imported
    /glob.scss
  /dev
    /bootstrap-sass
      /bootstrap
        /mixins
        /partial1.scss
        /partial2.scss
        /etc..
      /_bootstrap.scss -> This is the main Bootstrap Sass file that imports all partials.
当我直接在_variables.scss中重写一个变量,然后使用以下指令重新导入
\u bootstrap.scss
时:
@import'../dev/bootstrap sass/\u bootstrap.scss
在my boot.scss中,样式会得到更新


但是,我不想直接覆盖
\u variables.scss
中的变量。此外,我不希望每次更改时都被迫在我的主样式表中重新导入
\u bootstrap.scss

没有语言可以满足您的建议。如果指定
$margin:10px
,然后运行使用该变量的某些代码,则不能将其更改为
20px
,并期望它追溯更改已运行代码的结果


如果您想要
$margin:20px
,那么在运行依赖于它的过程(mixin、imports等)之前,您可以这样指定它。换句话说,移动引导导入,使其在设置变量后生效。

我不理解这里的问题。您认识到在使用变量之前必须先设置它们。所以在使用它们之前先定义它们?修改_variables.scss从来都不是一项要求,它只是为了方便您。是的,但是即使我在使用变量之前定义了一个变量,我仍然必须重新导入主
\u bootstrap.scss
,通常是通过点击空格或其他键,这样我就可以重新保存导入
\u bootstrap.scss
的主样式表。只有这样,它才会被重新导入,样式才会重新应用于文档。我希望能更清楚地说明问题所在。因此,实际问题是,在您进行更改时,您的Sass文件没有重新编译?我相信原因是,一旦将样式应用到文档中,您必须重新导入(例如,
\u bootstrap.scss
)才能将样式读取到文档中。假设我对文档应用了
$margin:10px
。后来,我决定将
$margin
修改为
20px
。为了使更改生效,我必须重写指令
@import bootstrap sass/bootstrap
,然后再次保存文件。这真的很麻烦。让我补充一下,
$margin
被导入主
\u bootstrap.sass
。我的主样式文件只导入
\u bootstrap.scss
。是的,我原则上同意。但是,我相信可以在JavaScript或至少其一些框架中设置变量侦听器。至于我试图解释的问题——我正在使用Grunt来运行项目中的某些任务。Mayby Grunt可以帮助进行动态变量重新分配?回调不会及时返回并更改已处理过程的结果。