【问题标题】:grunt-contrib-sass generates one file instead of multiple filesgrunt-contrib-sass 生成一个文件而不是多个文件
【发布时间】:2014-12-07 21:31:36
【问题描述】:

出于某种原因,grunt-contrib-sass 会生成一个组合的 .css 文件,而不是多个 .css 文件。但这只发生在我定义 ext 选项时。

文件结构:

app/ assets/ stylesheets/ application.web.scss application.mobile.scss application.tablet.scss public/ assets/

Gruntfile.js 配置

sass: { default: { options: { compass: false, noCache: true, style: 'expanded' }, files: [{ expand: true, src: 'application.**.scss', dest: 'public/assets', cwd: 'app/assets/stylesheets', ext: '.css' }] } }

以上配置生成如下:

app/ assets/ stylesheets/ application.web.scss application.mobile.scss application.tablet.scss public/ assets/ application.css

如果我完全删除 ext 选项,它会生成:

app/ assets/ stylesheets/ application.web.scss application.mobile.scss application.tablet.scss public/ assets/ application.web.scss application.mobile.scss application.tablet.scss

我希望它生成的是:

app/ assets/ stylesheets/ application.web.scss application.mobile.scss application.tablet.scss public/ assets/ application.web.css application.mobile.css application.tablet.css

我知道我可能忽略了一个非常基本的事情,但我似乎无法终生解决这个问题 XD 那么关于我做错了什么有什么想法吗?

【问题讨论】:

  • 您明白每个客户端都会下载每个链接的 CSS 文件,即使他们不符合媒体条件,对吧?用户不会从中受益。
  • 你知道将SCSS文件编译成多个文件与链接的CSS无关吧?

标签: sass gruntjs grunt-contrib-sass


【解决方案1】:

显然问题在于文件名包含多个点。这与扩展名混淆了。为了解决这个问题,我应该使用extDot 属性来定义扩展从哪个点开始。我在这里找到了这个答案https://github.com/gruntjs/grunt/pull/863#issuecomment-22015455,它指向了这里的实际文档http://gruntjs.com/configuring-tasks#building-the-files-object-dynamically

【讨论】:

    猜你喜欢
    • 2015-10-25
    • 2015-01-02
    • 2015-02-16
    • 2013-08-08
    • 2014-08-31
    • 2017-08-07
    • 2016-03-29
    • 2015-12-17
    • 1970-01-01
    相关资源
    最近更新 更多