Làm cách nào để đưa tệp CSS vào SCSS?

Với SASS và Compass, tất cả các tệp SCSS và SASS đã nhập có thể được nén và hợp nhất thành một tệp đầu ra CSS duy nhất. Còn các tệp CSS thông thường thì sao?

Ví dụ, nếu phong cách. scss chứa

  
@import "../../bower_components/animate.css/animate.css";
  

nó sẽ được biên dịch thành

  
@import url(../../bower_components/animate.css/animate.css);
  

Đây không phải là điều chúng tôi muốn nếu chúng tôi đang hướng tới việc sử dụng các tính năng thu nhỏ và hợp nhất của SASS và Compass. Một số sẽ đổi tên phần mở rộng tệp .css thành .scss như một giải pháp thay thế. Nhưng nếu chúng tôi đang sử dụng trình quản lý gói như Bower, thì việc đổi tên phần mở rộng tệp không được khuyến nghị. Bài viết này sẽ đưa ra giải pháp cho vấn đề này

  1. Trong thư mục dự án của bạn, tạo tệp mylib.rb và sao chép các mã sau vào tệp này

          
    require "sass/importers"
    class Sass::Importers::Filesystem
      alias :css_importer :extensions
      def extensions
        css_importer.merge('css' => :scss)
      end
    end
          
        
  2. Bây giờ chúng ta có thể nhập (các) tệp CSS thông thường vào các tệp SASS của mình. Ví dụ nếu chúng ta muốn nhập

      
    @import url(../../bower_components/animate.css/animate.css);
      
    
    0, chúng ta sẽ ghi nó vào tệp SASS mà không có phần mở rộng .css

          
    @import "../../bower_components/animate.css/animate";
          
        
  3. Để sử dụng thư viện ruby ​​​​tùy chỉnh của chúng tôi với dòng lệnh la bàn, hãy thực hiện

          
    compass compile assets/sass/style.scss -r ./mylib.rb
          
        
  4. Nếu bạn đang sử dụng grunt, bạn có thể sử dụng các mã sau để tham khảo cho

      
    @import url(../../bower_components/animate.css/animate.css);
      
    
    2 của mình

          
    module.exports = function (grunt) {
      grunt.loadNpmTasks('grunt-contrib-compass');
      grunt.loadNpmTasks('grunt-contrib-watch');
      grunt.initConfig({
        compass: {
          prod: {
            options: {
              config: 'config.rb',
              require: './mylib',
              environment: 'production',
              sourcemap: true
            } // options
          }, // prod
          dev: {
            options: {
              config: 'config.rb',
              require: './mylib',
              sourcemap: true
            } // options
          } // dev
        }, // compass
        watch: {
          sass: {
            files: [
              'assets/sass/*.scss'
            ],
            tasks: ['compass:dev']
          } // sass
        } // watch
      }); // initConfig
      grunt.registerTask('default', 'watch');
      grunt.registerTask('prod', ['compass:prod']);
    } // exports
          
        

Có cuộc thảo luận đang diễn ra sass/sass#193 về vấn đề này, nhưng khi viết bài này vẫn chưa có cách đơn giản nào để thực hiện điều này. Có một giải pháp nhưng nó không hoạt động

thẻ

Công cụ phát triển web frontend

SASS

La bàn

CSS

Tiếng càu nhàu

người cúi đầu

Thêm nhận xét mới

Tên của bạn

Chủ thể

Bình luận

Về định dạng văn bản

HTML bị hạn chế