kno*_*lya 5 javascript ember.js browserify gulp
我有以下gulpfile
我正在使用emberate,它会在生成的文件(client/.index.js在本例中)被写入时调用回调.现在browserify任务取决于该文件,所以它不应该在嵌入完成之后运行.但是我得到了不同的结果,有时它会起作用,有时我会得到这个:
错误:无法从'/ Users/myuser/workspace/myproject'中找到模块'./client/.index.js'
来自browserify(是的,文件还没有)..我不确定我做错了什么,我done在我的emberate任务中作为回调,而浏览器任务取决于emberate ..我错过了什么?
编辑:发现一个小模式,如果我运行它并没有错误,下次我运行时gulp我得到错误,但下次我没有,所以它是每隔一次oO
如果我跑gulp emberate,那很有效.然后,如果我运行gulp browserify它运行以下:
[gulp] Using file /Users/myuser/workspace/myproject/gulpfile.js
[gulp] Working directory changed to /Users/myuser/workspace/myproject
[gulp] Running 'clean'...
[gulp] Finished 'clean' in 3.11 ms
[gulp] Running 'emberate'...
[gulp] Finished 'emberate' in 22 ms
[gulp] Running 'browserify'...
[gulp] Live reload server listening on: 35729
events.js:72
throw er; // Unhandled 'error' event
^
Error: Cannot find module './client/.index.js' from '/Users/myuser/workspace/myproject'
at /Users/myuser/workspace/myproject/node_modules/browserify/node_modules/resolve/lib/async.js:36:25
at load (/Users/myuser/workspace/myproject/node_modules/browserify/node_modules/resolve/lib/async.js:54:43)
at /Users/myuser/workspace/myproject/node_modules/browserify/node_modules/resolve/lib/async.js:60:22
at /Users/myuser/workspace/myproject/node_modules/browserify/node_modules/resolve/lib/async.js:16:47
at Object.oncomplete (fs.js:107:15)
Run Code Online (Sandbox Code Playgroud)
这个最新版本似乎可以工作,但是在监视期间如果文件被更改,它不会清理client/.index.js文件,而是继续添加它oO(尽管运行gulp emberate有或没有clean依赖工作正常......).
看起来 中存在一个错误emberate,涉及使用一个进程时的模板,该进程gulp.watch正在执行。
这是我的最终结果gulpfile.js:
var path = require('path');
var gulp = require('gulp');
var less = require('gulp-less');
var refresh = require('gulp-livereload');
var clean = require('gulp-clean');
var source = require('vinyl-source-stream');
var emberate = require('emberate');
var browserify = require('browserify');
gulp.task('less', function () {
return gulp.src('./client/styles/*.less')
.pipe(less({
paths: [
path.join(__dirname, 'client', 'styles')
]
}))
.pipe(gulp.dest('./dist/styles'))
.pipe(refresh());
});
gulp.task('clean', function () {
return gulp.src('./client/.index.js', { read: false })
.pipe(clean());
});
gulp.task('emberate', ['clean'], function () {
return emberate('./client', { pods: true })
.pipe(source('.index.js'))
.pipe(gulp.dest('./client'));
});
gulp.task('browserify', ['emberate'], function () {
return browserify('./client/.index.js')
.bundle()
//Pass desired output filename to vinyl-source-stream
.pipe(source('application.js'))
// Start piping stream to tasks!
.pipe(gulp.dest('./dist/scripts/'))
.pipe(refresh());
});
gulp.task('watch', function () {
gulp.watch('./client/styles/*.less', ['less']);
gulp.watch('./client/**/*.{js,hbs}', ['browserify']);
});
gulp.task('default', ['less', 'browserify', 'watch']);
Run Code Online (Sandbox Code Playgroud)
效果很好:)
| 归档时间: |
|
| 查看次数: |
3714 次 |
| 最近记录: |