Browserify не смотрит нужные файлы
Я недавно переписал свой 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, все в порядке. Но когда я сохраняю любой файл.coffee, необходимый в app.coffee, он не связывается, пока я не сохраню app.coffee заново. У меня есть несколько пользовательских библиотек, которые требуются в структуре каталогов, как это:
/js
- app.coffee
- /lib
--lib-1.coffee
--lib-2.coffee
--etc.coffee
Я пытался использовать globbing, но это просто выдает ошибку, и большинство всего остального настроено так, как было до того, как я переписал его. Есть идеи?
1 ответ
У меня была похожая ситуация. Файлы в определенных папках или иногда отдельные файлы будут компилироваться, но не будут вызывать наблюдения при изменении или сохранении.
Оказывается, проблема была вызвана тем фактом, что по умолчанию файловая система OS X нечувствительна к регистру, поэтому, хотя Browserify удалось получить нужные ей файлы, я думаю, что служебные функции, которые использует Watchify, либо запутались, либо никогда не запускались в первое место для этих файлов, или, может быть, кэш Browserify был загружен с оригиналом, а затем никогда не находил обновленные файлы по несуществующим путям.
Исправление случая путей в моих инструкциях require() устранило проблему. Также есть плагин для проверки этой программы: https://github.com/zertosh/dep-case-verify