簡體   English   中英

用Grunt編譯更少的文件

[英]Compiling less files with Grunt

在這里完成對Grunt的新手培訓,但基本上,我正在嘗試使用Grunt做一些事情。 縮小一個JS文件,然后將多個LESS文件編譯為一個CSS文件。

javascript位有效,即我的文件custom.js壓縮為一個名為custom.min.js的文件,但是LESS位根本不起作用(沒有錯誤,只是無法編譯)。 誰能看到為什么呢?

module.exports = function(grunt) {

  // Project configuration.
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    uglify: {
      build: {
        src: 'scripts/custom.js',
        dest: 'scripts/custom.min.js'
      }
    },
    less: {
      build: {
        src: 'less/*.less',
        dest: 'style.css'
      }
    },
    watch: {
        files: ['scripts/custom.js'],
        tasks: ['uglify','less']
    }

  });

  grunt.loadNpmTasks('grunt-contrib-uglify');
  grunt.loadNpmTasks('grunt-contrib-watch');
  grunt.loadNpmTasks('grunt-contrib-less');

  // Default task(s).
  grunt.registerTask('default', ['uglify']);

};

您根本不需要調用LESS任務。 要調用它,請在已注冊的任務中添加任務名稱

grunt.registerTask('default', ['uglify','less']);

請參閱文檔以了解有關任務注冊的更多信息: http : //gruntjs.com/creating-tasks

編輯:

我看到您創建了一個watch任務,因此,如果您不是手動調用LESS任務而是通過監視文件,請確保在修改文件之前已在終端中執行grunt watch (並且未關閉終端窗口)

您應該在watch語句中包含對less任務的調用,例如:

         watch: {
            livereload: {
              options: { livereload: true },
              files: ["public/css/main.css", "public/css/less/*.less", "public/html/*.html", "public/js/*.js"]
            },
            scripts: {
                files: ["public/js/*.js"],
                tasks: ["jshint"]
            },
            less: {
                files: ["public/css/*.less", "public/css/less/*.less"],
                tasks: ["less", "csslint"], 
                options: {
                    nospawn: true
                }
            }
        },
        less: {
            development: {
                options: {
                    compress: true,
                    yuicompress: false,
                    optimization: 2,
                    cleancss:false,  
                    paths: ["css"],   
                    syncImport: false,
                    strictUnits:false,
                    strictMath: true,
                    strictImports: true,
                    ieCompat: false    
                },
                files: {
                    "public/css/main.css": "public/css/main.less"
                }
            }
        }

然后只需向watch注冊默認任務:

grunt.registerTask("default", ["express", "open:dev", "watch"]); 

將所有較少的文件移動到一個文件,如下所示:

Somefile.less:

@import '../bootstrap/bootstrap.less';
@import 'site.less';

並嘗試以下操作:

less: {
  build: {
    files: {
        'style.css': 'less/somefile.less'
    }
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM