【问题标题】:Dinamically add scss file to difference projects, with one sass-project将scss文件动态添加到不同的项目,一个sass-project
【发布时间】:2018-06-22 02:56:44
【问题描述】:

我有几个项目和一个 sass-project

projectOne
    sass
        config.rb
        projectOne.scss
projectTwo
    sass
        config.rb
        projectTwo.scss
projectSass
    custom
        projectOne
        projectTwo

以下变体示例 所有项目都从 projectSass 中获取 sass

如果我在项目中运行compass watch,我如何才能以动态方式将一个文件添加到全局 projectSass 中

  1. 可以添加到项目 projectOne.scss 中,变量 $project: projectOne(其中 projectOne == dirname),然后,if $project?但我无法在 sass 中获取目录名。对于这个变体,我在上面写了结构子文件夹
  2. 可能是通过 config.rb?从具有自定义的结构:projectOne:projectTwo。并且只添加一个import,其中projectOne==projectName==dirname
  3. 可以通过 gulp 吗?
  4. 可以通过罗盘编译。示例compass compile -exclude=dir but -include=projectname.scss

【问题讨论】:

    标签: sass watch compass


    【解决方案1】:

    这是我通过 gulp 解决的问题。

    gulp.task('compass', function () {
        var path = require("path");
        return gulp
            .src(['projectSass', '!projectSass/custom/', 'projectSass/custom/' + path.basename(__dirname) + '.scss'])
            .pipe($.compass({
                project: __dirname,
                watch: true,
                config_file: 'config.rb',
                css: path.basename(__dirname) + 'project/css',
                sass: '/media/sass',
                debug: true
            }))
            .pipe(gulp.dest('project/css'))
    });
    

    带有结构文件夹

    projectSass
        custom
           projectOne.scss
           projectTwo.scss
    

    可能有人有更漂亮的解决方案

    第二个解决方案

    在 config.rb 中

    module Sass::Script::Functions
        def dir_name()
            project_name = Pathname.new(File.dirname(__FILE__)).basename.to_s
            Sass::Script::String.new(project_name)
        end
    end
    

    在 scss 中我们得到字符串 project_name 但不工作

    @import dir_name(); # impossible in sass now
    

    可能,但不是很好

    if dir_name() == 'projectOne' {
        @include projectOne;
    

    第三种解决方案 我选择这个解决方案

    sass --watch --load-path https://stackoverflow.com/a/34227039/2742948

    【讨论】:

      猜你喜欢
      • 2018-11-01
      • 2017-11-11
      • 2020-04-05
      • 1970-01-01
      • 1970-01-01
      • 2011-11-10
      • 2018-10-11
      • 2018-11-24
      相关资源
      最近更新 更多