Improve chokidar watch on middleware and store

This commit is contained in:
Sébastien Chopin 2017-03-25 05:06:12 +01:00
parent ea5881e64a
commit c4962f09a9
2 changed files with 6 additions and 12 deletions

View File

@ -183,6 +183,7 @@ function * generateRoutesAndFiles () {
'components/nuxt-link.js',
'components/nuxt.vue'
]
this.options.store = fs.existsSync(join(this.srcDir, 'store'))
let templateVars = {
uniqBy: _.uniqBy,
isDev: this.dev,
@ -195,7 +196,7 @@ function * generateRoutesAndFiles () {
},
env: this.options.env,
head: this.options.head,
middleware: this.options.middleware,
middleware: fs.existsSync(join(this.srcDir, 'middleware')),
store: this.options.store,
css: this.options.css,
plugins: this.options.plugins.map((p) => {
@ -248,7 +249,7 @@ function * generateRoutesAndFiles () {
return writeFile(path, content, 'utf8')
.then(() => {
// Fix webpack loop (https://github.com/webpack/watchpack/issues/25#issuecomment-287789288)
const dateFS = Date.now() / 1000 - 10
const dateFS = Date.now() / 1000 - 30
return utimes(path, dateFS, dateFS)
})
})
@ -462,9 +463,11 @@ function createRenderer (bundle) {
function watchPages () {
const patterns = [
r(this.srcDir, 'pages'),
r(this.srcDir, 'layouts'),
r(this.srcDir, 'store'),
r(this.srcDir, 'middleware'),
r(this.srcDir, 'pages/*.vue'),
r(this.srcDir, 'pages/**/*.vue'),
r(this.srcDir, 'layouts'),
r(this.srcDir, 'layouts/*.vue'),
r(this.srcDir, 'layouts/**/*.vue')
]
@ -473,11 +476,7 @@ function watchPages () {
}
/* istanbul ignore next */
const refreshFiles = _.debounce(() => {
var d = Date.now()
co(generateRoutesAndFiles.bind(this))
.then(() => {
console.log('Time to gen:' + (Date.now() - d) + 'ms') // eslint-disable-line no-console
})
}, 200)
this.pagesFilesWatcher = chokidar.watch(patterns, options)
.on('add', refreshFiles)

View File

@ -59,11 +59,6 @@ class Nuxt {
if (fs.existsSync(join(this.srcDir, 'store'))) {
this.options.store = true
}
// If middleware defined, update middleware option to true
this.options.middleware = false
if (fs.existsSync(join(this.srcDir, 'middleware'))) {
this.options.middleware = true
}
// If app.html is defined, set the template path to the user template
this.options.appTemplatePath = resolve(__dirname, 'views/app.template.html')
if (fs.existsSync(join(this.srcDir, 'app.html'))) {