【发布时间】:2016-01-22 11:24:50
【问题描述】:
软件环境
我在 Windows 上使用 NodeJS v4.2.1。
我在底部包含了我的gulpfile.js、bower.json 和package.json 文件。
附加信息
- 我目前没有运行任何 IDE。因此,绝对不是文件被外部程序锁定的问题。
- 我在命令提示符下运行所有内容。
问题
- 我的
gulpfile.js有问题吗? - 这是
NodeJS v4.2.1的错误吗? - 这是 Gulp 的错误吗?
问题
我在命令提示符下运行gulp 时遇到了这两个问题。
问题 #1
当我运行gulp 时,我的build 文件夹不会每隔一段时间创建一次。
当我第一次运行它时,它会创建带有copy-bower Gulp 任务输出工件的build 文件夹。
当我再次运行它时,build 文件夹不会被创建。
gulp 控制台输出清楚地显示了我的copy-bower 任务在clean 任务之后运行,但我没有看到build 文件夹已创建。
[21:21:32] Using gulpfile
[21:21:32] Starting 'clean'...
[21:21:32] Finished 'clean' after 3.66
[21:21:32] Starting 'copy-bower'...
[21:21:32] Finished 'copy-bower' after
[21:21:32] Starting 'default'...
[21:21:32] Finished 'default' after 6.
Directory: C:\Users\stun\Desktop\test-app
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 10/22/2015 9:00 PM bower_components
d----- 10/22/2015 8:59 PM node_modules
-a---- 10/22/2015 9:30 PM 347 bower.json
-a---- 10/22/2015 9:31 PM 421 gulpfile.js
-a---- 10/22/2015 9:30 PM 301 package.json
问题 #2
我有时会遇到这些错误之一。
events.js:141
throw er; // Unhandled 'error' event
^
Error: ENOENT: no such file or directory, chmod 'C:\Users\stun\Desktop\test-app\build\bower_components\jquery\dist\jquery.min.map'
at Error (native)
另一个错误
events.js:141
throw er; // Unhandled 'error' event
^
Error: ENOENT: no such file or directory, stat 'C:\Users\stun\Desktop\test-app\build\bower_components\bootstrap\dist\fonts'
at Error (native)
gulpfile.js
var gulp = require('gulp'),
del = require('del');
gulp.task('clean', function () {
del(['build']);
});
gulp.task('copy-bower', ['clean'], function () {
var src = [
'./bower_components/bootstrap/dist/**',
'./bower_components/jquery/dist/*'
];
gulp.src(src, { base: '.' })
.pipe(gulp.dest('./build/'));
});
gulp.task('default', ['copy-bower'], function () { });
bower.json
{
"name": "test-app",
"description": "testing gulp and bower",
"main": "",
"moduleType": [],
"authors": [""],
"license": "MIT",
"homepage": "",
"private": true,
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"tests"
],
"dependencies": {
"bootstrap": "~3.3.5"
}
}
package.json
{
"name": "test-app",
"version": "1.0.0",
"description": "testing gulp and bower",
"main": "",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"devDependencies": {
"del": "^2.0.2",
"gulp": "^3.9.0"
}
}
【问题讨论】:
-
这是在我可以克隆的仓库中吗?
-
@James Louis 下面的回答是正确的。我没有
return"clean"任务,它导致其他任务由于写入和删除期间的文件锁定而随机失败。我没有这方面的回购,因为我只玩 Gulp 和 Bower。我拥有的所有文件都是上面的gulpfile.js、package.json和bower.json。