【发布时间】:2025-12-02 19:00:02
【问题描述】:
我已经使用 netbeans 很长时间了。我主要使用 php、html、css 和 javascript,主要与 wordpress 主题和插件开发有关。我在 Windows 7 下运行 Netbeans 8.0.2(并用于测试 gulp 最新的夜间版本)。
我刚刚开始使用 grunt 和/或 gulp(目前倾向于后者),目前正在利用 autoprefixer - 但我看到了这些系统的一百万个其他潜在好处。
不过,有一个引人注目的地方。几年前我沉迷于“保存时上传文件”功能,我不打算改掉这个习惯 - 即时上传是我几乎所有项目工作流程的核心部分......
到目前为止,它只是默默地处理了我扔给它的任何东西,并自动上传任何更改的文件,无论我使用 netbeans、photoshop、windows explorer 还是任何其他外部程序来修改或移动文件……但它没有不能很好地使用最近引入的 gulp 和 grunt 支持。
如果我运行 gulp(或 grunt)任务并更新了文件,netbeans 不会检测到更改,直到打开更改的文件(或者如果已经打开,则使用选项卡)......因此更新的文件不是已上传。
如果任务作为手表运行,我是从 CLI 还是从 netbeans 运行它似乎并不重要。如果这是一个“正常”任务(即不是手表 - 我对术语不太熟悉),我通过右键单击 Gruntfile.js -> Grunt Tasks -> whatever 手动运行它然后检测到更改...但这不是很方便(与我通常推送CTRL+S 的“部署过程”相比)。到目前为止,这种运行任务的内置方式适用于 grunt - 但不适用于(还没有?)gulp。
我看到的唯一选择是:
- 为 grunt 或 gulp 使用 FTP 插件 - 出于多种原因非常不受欢迎
- 在服务器端运行 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;
}
}
【问题讨论】:
-
我已在 netbeans.org 错误跟踪器上提交了错误报告。如果您遇到同样的问题,请投票、订阅并添加任何其他详细信息,以帮助加快解决问题的速度:bug 252782
标签: node.js netbeans upload gruntjs gulp