【问题标题】:Running grunt on windows 8在 Windows 8 上运行 grunt
【发布时间】:2014-07-07 12:55:42
【问题描述】:

我正在尝试在 Windows 8 机器上的现有项目上运行 grunt。 我已经通过运行全局安装了 grunt-cli:

npm install -g grunt-cli

但是,当尝试运行项目时:

grunt develop 

我收到此错误:

Warning: Unable to write "preview.html" file <Error code: EPERM>. Use --force to continue.
Aborted due to warnings.

然后在运行时

grunt develop --force

我收到此错误:

Running "less:css/main.css" <less> task
Fatal error: Unable to write "css/main.css" file <Error code: EPERM>.

您在这方面可以提供的任何帮助都将是最有帮助的, 谢谢。

更新 1:

这是我的 Gruntfile.js

module.exports = function(grunt){

  grunt.initConfig({
    watch: {
      less: {
        files: ['**/*.less', '!less/_compiled-main.less'],
        tasks: 'less'
    },
    html: {
        files: ['preview-template.html', 'js/**/*.js', 'less/**/*.less', '!less/_compiled-main.less'],
        tasks: ['includeSource', 'add-dont-edit-prefix-to-preview-html']
    },
    wysiwyg: {
        files: ['less/wysiwyg.less'],
        tasks: 'generate-wysiwyg-styles-js'
    }
},
less: {
  'css/main.css': 'less/_compiled-main.less',
  'css/wysiwyg.css': 'less/wysiwyg.less',
  options: {
    dumpLineNumbers: 'comments'
}
},
includeSource: {
  options: {
    templates: {

    },
},
dev: {
    files: {
      'preview.html': 'preview-template.html',
      'less/_compiled-main.less': 'less/main.less'
  }
}
},
connect: {
  server: {
    options: {
      base: '.',
      port: 8000
  }
}
}
});

  // Css preprocessor
  grunt.loadNpmTasks('grunt-contrib-less');
  // Watch for file changes and run other grunt tasks on change
  grunt.loadNpmTasks('grunt-contrib-watch');
  // Includes all js files in preview-template.html and saves as preview.html.
  // Includes all less files in main.less and saves as _compiled-main.less
  grunt.loadNpmTasks('grunt-include-source');
  // Static http server
  grunt.loadNpmTasks('grunt-contrib-connect');

  grunt.registerTask('generate-wysiwyg-styles-js', function(){
    var css = grunt.file.read('css/wysiwyg.css');
    css = css.replace(/\n/g, '')
    var js = '// This file is generated automatically based on wysiwyg.less - don\' edit it directly!\n';
    js += '// It needs to exist in JS form so we can include the CSS in the downloaded saved notes file';
    js += "\napp.value('wysiwygStyles', '" + css + "');";
    grunt.file.write('js/app/wysiwyg-styles.js', js)
})

  grunt.registerTask('add-dont-edit-prefix-to-preview-html', function(){
    var file = grunt.file.read('preview.html');
    var prefix = '<!-- \n\n\n\n Don\'t edit this file, edit preview-template.html instead.' + new Array(20).join('\n') + ' -->';
    file = file.replace('<!doctype html>', '<!doctype html>' + prefix)
    grunt.file.write('preview.html', file);
});

  grunt.registerTask('build-develop', [
    'includeSource',
    'less',
    'generate-wysiwyg-styles-js',
    'add-dont-edit-prefix-to-preview-html'
    ])

  grunt.registerTask('develop', [
    'build-develop',
    'connect:server',
    'watch'
    ]);
}

【问题讨论】:

  • 问题出在您的 gruntfile 中,而不是 grunt 实用程序,如果您发布文件内容我也许可以帮助您
  • 谢谢,刚刚发布了 Gruntfile.js 作为问题的更新。

标签: windows node.js gruntjs grunt-contrib-watch


【解决方案1】:

试试这样吧?

less: {
  files: {
    'css/main.css': 'less/_compiled-main.less',
    'css/wysiwyg.css': 'less/wysiwyg.less'
  },
  options: {
    dumpLineNumbers: 'comments'
  }
}

注意filesgrunt.initConfig 之后添加到less 数组

让我知道它是否有效。

【讨论】:

  • 感谢您的帮助,终于解决了问题。运行它的文件夹是只读的!
猜你喜欢
  • 2014-08-25
  • 2011-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-25
  • 1970-01-01
  • 1970-01-01
  • 2014-04-03
相关资源
最近更新 更多