Grunt 或 gulp with netbeans 并在保存时上传

Grunt or gulp with netbeans and upload on save

我已经使用 netbeans 很长时间了。我主要使用 php、html、css 和 javascript 主要与 wordpress 主题和插件开发相关。我 运行 Netbeans 8.0.2(以及用于测试 gulp 最新的夜间构建)在 windows 7.

我刚刚开始使用 g运行t 和/或 gulp(到目前为止倾向于后者),目前要利用 autoprefixer - 但是我看到了这些系统的一百万个其他潜在好处。

虽然有一个亮点。几年前我就对 "Upload files on save" 功能上瘾了,我不打算改掉这个习惯 - 即时上传是我几乎所有项目工作流程的核心部分...

到目前为止,它只是静静地处理我扔给它的任何东西,并自动上传任何更改的文件,无论我是否使用 netbeans、photoshop、windows explorer 或任何其他外部程序来修改或移动文件...但它与最近引入的 gulp 和 g运行t 支持配合得不好。

如果我 运行 gulp(或 g运行t)任务和文件被更新,netbeans 不会检测到更改,直到打开(或选项卡)更改的文件如果已经打开)...因此不会上传更新的文件。

如果任务 运行 是一个手表,那么我 运行 从 CLI 还是从 netbeans 似乎并不重要。如果它是一项 "normal" 任务(即不是手表 - 我对行话还不是很满意)并且我通过右键单击 Gruntfile.js -> [= 手动 运行 它16=] -> whatever 然后检测到变化 ...但这不是很方便(与我通常的 "deployment procedure" 推送 CTRL+S).到目前为止,这种 运行ning 任务的内置方式适用于 g运行t - 但不适用于(还?)gulp.

我看到的唯一选项是:

有没有人设法让这个在类似的情况下工作?

-任何其他建议/指点也欢迎,如果我只是完全错误地处理它。

或多或少要复制的最少(基于我目前有限的知识)文件:

package.json:

{
  "name": "grunt_gulp_test",
  "version": "0.0.1",
  "description": "",
  "main": "gulpfile.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Mikkel",
  "license": "ISC",
  "devDependencies": {
    "grunt": "^0.4.5",
    "grunt-contrib-sass": "^0.9.2",
    "grunt-contrib-watch": "^0.6.1",
    "gulp": "^3.8.11",
    "gulp-autoprefixer": "^2.3.0",
    "gulp-load-plugins": "^0.10.0",
    "gulp-sass": "^2.0.1",
    "gulp-sourcemaps": "^1.5.2",
    "gulp-util": "^3.0.4"
  }
}

Gruntfile.js:

module.exports = function(grunt) {
    grunt.initConfig({
        sass: {                              // Task
            dist: {                            // Target
                options: {                       // Target options
                    style: 'expanded'
                },
                files: {                         // Dictionary of files
                    'test_grunt.css': 'test.scss'
                }
            }
        },
        watch: {
            scripts: {
                files: ['test.scss'],
                tasks: ['sass'],
                options: {
                    spawn: false
                }
            }
        }
    });

    grunt.loadNpmTasks('grunt-contrib-sass');
    grunt.loadNpmTasks('grunt-contrib-watch');

    grunt.registerTask('default', ['sass']);
    grunt.registerTask('watch_it', ['sass', 'watch']);
};

gulpfile.js:

'use strict';

var gulp = require('gulp');
var gutil = require( 'gulp-util' );
var $ = require('gulp-load-plugins')();

gulp.task('styles', function () {
  return gulp.src([
    'test.scss'
  ])
    .pipe($.sourcemaps.init())
    .pipe($.sass({
      precision: 10,
      onError: console.error.bind(console, 'Sass error:')
    }))
    .pipe($.autoprefixer({browsers: ['> 5%']}))
    .pipe($.sourcemaps.write())
    .pipe(gulp.dest('.'));
});

gulp.task('default', ['styles']);

gulp.task('watch', ['styles'], function () {
  gulp.watch(['test.scss'], ['styles']);
});

test.css:

div {
    div {
        display: flex;
        background: #445552;
    }
}

已确认这是 windows 用户 运行 的错误。

The bug has been resolved, and until it is included in a stable release, anyone else who is affected by the problem can simply use a nightly build >= 201508060002