2016-04-01 2 views
2

Я использую пакет lpm. Часы Gulp отлично работают для меня, когда я изменяю файл в рамках функций «скриптов» или «стилей». Однако, когда я меняю 1 файл, который у меня есть в функции «браунировать», часы gulp не запускаются. Вот мой код:Gulp Watch не ловит изменений в файлах обозревателя

var elixir = require('laravel-elixir'); 
require('laravel-elixir-vueify'); 

elixir(function(mix) { 
    mix.sass('app.scss') 
     .browserify(['main.js' 
     ], './public/js/main.js') 

     .scripts([ 
      'libs/jquery-2.1.1.js', 
      'libs/bootstrap.js', 
      'libs/vue.js', 
     ], './public/js/libs.js') 

     .styles([ 
      'libs/bootstrap.min.css', 
      'libs/style.css' 
     ], './public/css/libs.css'); 
}); 

Я также попытался просто использовать ниже без толка:

mix.sass('app.scss') 
     .browserify(['main.js') 
(etc...) 

Не только бы я хотел глотку запускать каждый раз, когда я что-либо изменить в main.js, но я есть файл компонента Vue, который импортируется в main.js. Я часто меняю этот файл, и мне бы очень хотелось, чтобы gulp watch поймал его, когда я изменяю этот файл. Какие-либо предложения?

Если вышеуказанное невозможно, существует ли способ запустить gulp, чтобы он только перекомпилировал файл браузера (и пропускал файлы сценариев/стилей)?

ответ

1

вы можете попробовать

elixir(function(mix) { 
    mix.sass('app.scss'); 

    mix.browserify(['main.js' 
    ], './public/js/main.js'); 

    mix.scripts([ 
     'libs/jquery-2.1.1.js', 
     'libs/bootstrap.js', 
     'libs/vue.js', 
    ], './public/js/libs.js'); 

    mix.styles([ 
     'libs/bootstrap.min.css', 
     'libs/style.css' 
    ], './public/css/libs.css'); 
}); 

запомнить, чтобы написать эту строку кода в вашем main.js файле

import Vue from 'Vue'; 

и для импорта VUE компонентов:

import YourComponent from './yourPATH/YourComponent.vue'; 

надеюсь, что это работает.

мой gulpfile.js

var elixir = require('laravel-elixir'); 

require('laravel-elixir-vueify'); 


elixir(function(mix) { 
    mix.sass('app.scss','resources/css'); 

    mix.browserify('main.js'); 

    mix.styles([ 
     'libs/bootstrap.css', 
     'app.css' 
    ]); 

    mix.scripts([ 
     'libs/bootstrap.js', 
     'libs/jquery-2.2.2.js' 
    ]); 
}); 

мой основной main.js

import Vue from 'Vue'; 
import Alert from './components/Alert.vue'; 

new Vue({ 
    el: 'body', 

    components: {Alert} 
}) 
+0

Есть ли способ запустить только один из этих вызовов, как только mix.browserify (и т.д. ...) из командной строки? Что-то вроде gulp -browserify? – user3089840

+0

Я переформатировал свой код, чтобы он выглядел точно так же, как ваш, но часы gulp все еще не запускаются, когда я вообще меняю main.js. – user3089840

+0

Странно, с этим соглашением мои сценарии и стили слились идеально, а мои sass и браузеры отлично скомпилированы. Вы видели какие-либо ошибки при запуске 'gulp'? – ishadif

Смежные вопросы