Javascript 大口大口喝不到';不能结合或丑陋
我似乎已经将Gulp配置为在Netbeans中运行。我的目标是让gulp简单地将一个目录中的所有Javascript文件合并到一个文件中,然后“uglify”生成的文件 当我保存一个Javascript文件时,会创建一个新的Javascript文件,但它不会与任何其他文件合并,也不会被丑化。我没有收到任何错误消息,但也没有得到任何期望的结果。我哪里做错了 这是我的gulpfile.js:Javascript 大口大口喝不到';不能结合或丑陋,javascript,gulp,Javascript,Gulp,我似乎已经将Gulp配置为在Netbeans中运行。我的目标是让gulp简单地将一个目录中的所有Javascript文件合并到一个文件中,然后“uglify”生成的文件 当我保存一个Javascript文件时,会创建一个新的Javascript文件,但它不会与任何其他文件合并,也不会被丑化。我没有收到任何错误消息,但也没有得到任何期望的结果。我哪里做错了 这是我的gulpfile.js: var gulp = require('gulp'), gp_concat = require('g
var gulp = require('gulp'),
gp_concat = require('gulp-concat'),
gp_rename = require('gulp-rename'),
gp_uglify = require('gulp-uglify');
gulp.task('combine', function(){
return gulp.src(['*.js'])
.pipe(gp_concat('concat.js'))
.pipe(gulp.dest('dist'))
.pipe(gp_rename('uglify.js'))
.pipe(gp_uglify())
.pipe(gulp.dest('dist'));
});
gulp.task('default', ['combine'], function(){});
这是我的package.json:
{
"name": "xxxxxxxxxxxxxxxxxx",
"version": "1.0.0",
"keywords": ["util", "functional", "server", "client", "browser"],
"author": "xxxxxxxxxxxxxxxxxx",
"contributors": [],
"dependencies": {},
"scripts" :
{
"watch" : "watchify ../../html/xxxxxxxxxxxxxxxxxx/js/*.js -o ../../html/xxxxxxxxxxxxxxxxxx/bundle.js -v"
}
}
请注意,这些是我从Stack Overflow和web中其他地方的示例中复制的文件,因此我确信我遗漏了一些东西
最新更新: 我现在正在使用这个修改过的Gulp文件,并更正了目录路径:
var gulp = require('gulp'),
expect = require('gulp-expect-file'),
concat = require('gulp-concat'),
minify = require('gulp-minify'),
gutil = require('gulp-util'),
babel = require('gulp-babel'),
jsFiles = '../../html/public_html/js/*.js',
jsDest = '../../public_html/dist';
gulp.task('combine', function ()
{
return gulp.src(jsFiles)
.pipe(expect(jsFiles))
.pipe(babel({presets: ['babili']}))
.pipe(concat('concat.js'))
.pipe(minify().on('error', gutil.log))
.pipe(gulp.dest(jsDest));
});
当我运行它时,我仍然没有在我的dist/
文件夹中得到任何结果组合文件
我现在得到这个错误输出:
[11:53:13] Using gulpfile ~\Documents\NetBeansProjects\Project_Name\gulpfile.js
[11:53:13] Starting 'combine'...
[11:53:13] Tested 5 tests, 5 passes, 0 failures: PASS
Done.
events.js:160
throw er; // Unhandled 'error' event
^
SyntaxError: ..\..\html\html\public_html\js\*.js
Unexpected token: operator (>) (line: 30, col: 34, pos: 95518
at JS_Parse_Error.get (eval at <anonymous> (C:\Users\Project Username\Documents\NetBeansProjects\Project_Name\node_modules\uglify-js\tools\node.js:27:1), <anonymous>:86:23)
at PluginError.<anonymous> (C:\Users\Project Username\Documents\NetBeansProjects\Project_Name\node_modules\gulp-util\lib\PluginError.js:37:60)
at Array.forEach (native)
at new PluginError (C:\Users\Project Username\Documents\NetBeansProjects\Project_Name\node_modules\gulp-util\lib\PluginError.js:36:16)
at Transform.minify [as _transform] (C:\Users\Project Username\Documents\NetBeansProjects\Project_Name\node_modules\gulp-minify\index.js:117:23)
at Transform._read (C:\Users\Project Username\Documents\NetBeansProjects\Project_Name\node_modules\through2\node_modules\readable-stream\lib\_stream_transform.js:184:10)
at Transform._write (C:\Users\Project Username\Documents\NetBeansProjects\Project_Name\node_modules\through2\node_modules\readable-stream\lib\_stream_transform.js:172:12)
at doWrite (C:\Users\Project Username\Documents\NetBeansProjects\Project_Name\node_modules\through2\node_modules\readable-stream\lib\_stream_writable.js:237:10)
at writeOrBuffer (C:\Users\Project Username\Documents\NetBeansProjects\Project_Name\node_modules\through2\node_modules\readable-stream\lib\_stream_writable.js:227:5)
at Transform.Writable.write (C:\Users\Project Username\Documents\NetBeansProjects\Project_Name\node_modules\through2\node_modules\readable-stream\lib\_stream_writable.js:194:11)
[11:53:13]使用gulpfile~\Documents\NetBeansProjects\Project\u Name\gulpfile.js
[11:53:13]启动“联合收割机”。。。
[11:53:13]测试了5次测试,5次通过,0次失败:通过
完成。
events.js:160
投掷者;//未处理的“错误”事件
^
语法错误:..\..\html\html\public\u html\js\*.js
意外令牌:操作员(>)(行:30,列:34,位置:95518
在JS\u Parse\u Error.get(在(C:\Users\Project Username\Documents\NetBeansProjects\Project\u Name\node\u modules\uglify JS\tools\node.JS:27:1),:86:23)处求值
位于PluginError。(C:\Users\Project Username\Documents\NetBeansProjects\Project\u Name\node\u modules\gulp util\lib\PluginError.js:37:60)
at Array.forEach(本机)
在新的PluginError(C:\Users\Project Username\Documents\NetBeansProjects\Project\u Name\node\u modules\gulp util\lib\PluginError.js:36:16)
在Transform.minify[as _Transform](C:\Users\Project Username\Documents\NetBeansProjects\Project\u Name\node\u modules\gulp minify\index.js:117:23)
转换时读取(C:\Users\Project Username\Documents\NetBeansProjects\Project\u Name\node\u modules\through2\node\u modules\readable stream\lib\\u stream\u Transform.js:184:10)
在转换时写入(C:\Users\Project Username\Documents\NetBeansProjects\Project\u Name\node\u modules\through2\node\u modules\readable stream\lib\\u stream\u Transform.js:172:12)
在doWrite(C:\Users\Project Username\Documents\NetBeansProjects\Project\u Name\node\u modules\through2\node\u modules\readable stream\lib\ stream\u writeable.js:237:10)
在writeOrBuffer(C:\Users\Project Username\Documents\NetBeansProjects\Project\u Name\node\u modules\through2\node\u modules\readable stream\lib\\u stream\u writeable.js:227:5)
在Transform.writeable.write(C:\Users\Project Username\Documents\NetBeansProjects\Project\u Name\node\u modules\through2\node\u modules\readable stream\lib\\u stream\u writeable.js:194:11)
试试这个
var gulp = require('gulp'),
expect = require('gulp-expect-file'),
concat = require('gulp-concat'),
minify = require('gulp-minify');
gulp.task('combine', function() {
var files = ['*.js'];
gulp.src(files)
.pipe(expect(files))
.pipe(concat('concat.js'))
.pipe(minify())
.pipe(gulp.dest('dist/'));
});
```
您还应该将以下行“gulp minify”:“0.0.14”
和“gulp expect file”:“0.0.7”
添加到包.json的devdependency
我不确定,但似乎模式***
(任何文件夹)在gulp中不起作用。因此,您的模式*.js
将只在根文件夹中搜索扩展名为js
的文件。非常感谢您的响应。我正在使用您的代码,当我运行合并
功能时,我没有收到任何错误。但是,dist/
目录中没有显示任何合并文件。我已经更新了我的q继续输入您的代码和结果。@提问者很可能您的模式*.js
与任何文件都不匹配。在这种情况下,将不会在目标中生成任何文件。感谢您的跟进。当您说*.js
与任何文件都不匹配时,您的意思是在Gulp中使用通配符是无效的吗?还是你的意思是,从某种意义上说,目录可能找不到?如果是后者,我是否应该得到某种错误消息?@Questioner Gulp支持通配符。但我认为你使用的模式与项目中的任何文件都不匹配。你可以试试这个Gulp.src('./js/*.js').pipe(concat('concat.js'))…
rest与您的代码一样。而且gulp任务应该有return,即在gulp src(…)…
@RajeshDan之前添加return
。
@RajeshDan,谢谢您的建议。我按照您的建议修改了代码,但不幸的是,我仍然没有得到任何组合文件。然后请确保路径(源和目标)是正确的,没有权限问题!有时可能会发生。你还可以共享目录结构吗?这可能会帮助我们帮助你!@RajeshDan,我会在回答中包括目录结构,请给我几分钟时间来整理。但是,如果找不到文件,我会这样说吗?我是否可以打开详细错误报告以查看这是否是问题所在?