我最近重新编写了我的gulpfile,一切都运行得很好,如果不比以前更好,除了在保存时,我的主.coffee文件将捆绑,但没有一个必需的文件触发捆绑,我无法想象为什么。这是我的文件:
配置文件 -
neat = require('node-neat').includePaths
glob = require 'glob'
dest = "../bld"
src = "./src"
module.exports =
browserSync:
proxy: "moovweb.dev/"
ghostMode:
clicks: false
location: false
forms: false
scroll: false
sass:
src: "styl/src/**"
dest: dest
settings:
sourceComments: 'map',
imagePath: '/img',
errLogToConsole: true,
includePaths: ['sass'].concat(neat)
markup:
src: ['../*.php', '../inc/*.php', '../templates/*.php']
images:
src: "/img/**"
dest: dest + "/img"
browserify:
bundleConfigs: [
#entries: glob.sync('./js/src/**/*.coffee')
entries: './js/src/app.coffee'
dest: dest
extensions: ['.coffee']
outputName: 'app.js'
debug: true
]
browserify文件 -
browserify = require 'browserify'
browserSync = require 'browser-sync'
watchify = require 'watchify'
bundleLogger = require '../util/bundleLogger'
gulp = require 'gulp'
handleErrors = require '../util/handleErrors'
source = require 'vinyl-source-stream'
config = require('../config').browserify
_ = require 'lodash'
browserifyTask = (callback, devMode) ->
bundleQueue = config.bundleConfigs.length
browserifyThis = (bundleConfig) ->
if devMode
_.extend bundleConfig, watchify.args, debug: true
bundleConfig = _.omit bundleConfig, ['external', 'require']
b = browserify(bundleConfig)
bundle = ->
bundleLogger.start(bundleConfig.outputName)
return b
.bundle()
.on 'error', handleErrors
.pipe(source(bundleConfig.outputName))
.pipe(gulp.dest(bundleConfig.dest))
.on 'end', reportFinished
.pipe(browserSync.reload
stream: true
)
b = watchify(b)
b.on 'update', bundle
bundleLogger.watch(bundleConfig.outputName)
reportFinished = ->
bundleLogger.end(bundleConfig.outputName)
if bundleQueue
bundleQueue--
if bundleQueue is 0
callback()
return
return bundle()
config.bundleConfigs.forEach(browserifyThis)
gulp.task 'browserify', browserifyTask
module.exports = browserifyTask
当我保存app.coffee时,一切都很好。但是当我在app.coffee中保存任何.coffee文件时,除非我重新保存app.coffee,否则它不会捆绑。我有一些目录结构中需要的自定义库,如下所示:
/js
- app.coffee
- /lib
--lib-1.coffee
--lib-2.coffee
--etc.coffee
我已尝试使用globbing,但这只会产生错误,并且其他大部分内容都是在重新编写之前设置的。有什么想法吗?
答案 0 :(得分:0)
我有类似的情况。某些文件夹或有时单个文件中的文件将被编译,但在更改或保存时不会触发监视。
事实证明问题是由于默认情况下OS X的文件系统不区分大小写,所以当Browserify能够获取所需的文件时,我认为Watchify使用的实用程序功能在这些文件的第一个地方感到困惑或从未开始,或者Browserify缓存可能已加载原始文件,然后从未在不存在的路径中找到更新的文件。
在require()语句中修复路径的情况解决了这个问题。此外,还有一个用于以编程方式检查此插件的插件:https://github.com/zertosh/dep-case-verify