0

我刚刚在我的 Win8 机器上安装了 Grunt,运行['sass', 'autoprefixer', 'connect', 'watch']任务以在浏览器中进行实时刷新和设计,没有任何问题。这些过程正在监视我的文件夹是否有变化,从 SCSS 编译到 CSS,刷新我的浏览器。

然后昨晚我重命名了磁盘上的目录-从c:\ruby-sass-susyc:\libsass-susy。可悲的是,这破坏了我的设置:(

现在,当我运行我的默认设置时grunt——它会启动服务器——第一次编译文件——并打开一个浏览器,让我的项目准备好按照它应该的方式进行。

但是现在更改和保存.scss它不会编译任何东西。我在命令行看到的:

Running "watch" task
Waiting...
>> File "scss\00-config\_config.scss" changed.

但是没有编译发生,它不会创建我的global.css和关联的地图文件,也没有任何活动。

我试过的:

  • npm uninstall <package>对于每个相关的watch, connect
    grunt-sass包。

  • npm install <package> --save-dev在所有三个上,以干净地重新安装所有三个

  • 然后(当什么都没做时)我从一个新目录开始——使用我的package.jsonand bower.json,我从头开始重新安装新目录中的所有依赖项,复制到Gruntfile,然后再次运行它来测试

我在新目录中得到了相同的结果。发生了什么?现在问题是否在我的 Node 或 npm install 中更进一步?没有指向正确目录的东西?(对不起,我不是 Grunt 或 javascript 编程专家)

这是我的 Gruntfile —— 相关位,我省略了我没有默认运行的包:

~~~

// Gruntfile for LibSass - 03/26/15

module.exports = function(grunt) {

'use strict';

grunt.loadNpmTasks('grunt-sass');
grunt.loadNpmTasks('grunt-autoprefixer');
grunt.loadNpmTasks('grunt-contrib-imagemin');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-connect');
grunt.loadNpmTasks('grunt-contrib-watch');

grunt.initConfig({

    pkg: grunt.file.readJSON('package.json'),

    // Sass (grunt-sass)
    sass: {
        options: {
            sourceMap: true, // Create source map
            outputStyle: 'expanded' // Specify output
        },
        dist: {

            files: [
                {
                    expand: true, // Recursive
                    cwd: "scss", // The startup directory
                    src: ["**/*.scss"], // Source files
                    dest: "css", // Destination
                    ext: ".css" // File extension 
                }
            ]
        }
    },


    // Autoprefixer
    autoprefixer: {
        options: {
            browsers: ['last 2 versions'],
            map: true // Update source map (creates one if it can't find an existing map)
        },

        // Prefix all files
        multiple_files: {
            src: 'css/**/*.css'
        },
    },

    // Grunt connect (server)
    connect: {
        server: {
            options: {
                livereload: 1337,
                port: 9001,
                base: '',
                open: {
                    target: 'http://localhost:9001/',
                }
            }
        },
    },

    // Watch!
    watch: {
      sass: {
        files: ['scss/**/*.{scss,sass}'],
      },

      livereload: {
        files: ['*.html', '*.php', 'img/**/*.{png,jpg,jpeg,gif,webp,svg}'],
        options: {
          livereload: true,
        },
      },
    }
});

// Default Sass Server
grunt.registerTask('default', ['sass', 'autoprefixer', 'connect', 'watch']);

};
4

1 回答 1

0

仅供参考,我通过将 grunt-contrib-connect 服务器替换为 grunt-browser-sync -- Browser Sync解决了这个问题

在追查问题并阅读其他人使用“连接”服务器的经验之后,在我看来,这可能是每个有问题的人的共同点。所以我放弃了它并连接了一个新的解决方案。

到目前为止,它工作得很好!非常可靠和快速的服务器,并且还具有一些附加功能,例如在多个设备上实时同步和刷新浏览器。

于 2015-03-29T06:50:53.060 回答