Vue.js:Laravel Mix没有组合文件

时间:2017-07-17 11:58:03

标签: javascript node.js laravel-5 vuejs2

我使用Laravel 5.4和Node.js 6以及Vue.js 2.

resources/assets/js/app.js我有:

require('./bootstrap');

window.Vue = require('vue');

Vue.use(require('vue-resource'));

webpack.mix.js我有:

mix.combine([
    'resources/assets/js/app.js',
    'resources/assets/js/enhanced.js',
    'resources/assets/js/search.js'
], 'public/js/app.js')
   .sass('resources/assets/sass/app.scss', 'public/css');

resources/assets/js/enhanced.js我有:

require('./app')

var Search = require('./components/Enhanced.vue');

const app = new Vue({
    el: '#app_page_enhanced',
    render: app_page_enhanced => app_page_enhanced(Page_Enhanced)
});

resources/assets/js/search.js我有:

require('./app')

var Search = require('./components/Search.vue');

new Vue({
    el: '#app_search',
    render: app_search => app_search(Search)
})

我在终端窗口中运行npm run watch-poll

但是,我一直在app.js的第8行收到错误:

  

需要('自举./&#39);

当我对该行进行评论时,该过程会在没有其他错误的情况下完成,但是当我查看:public/js/app.js时,不会包含单独的.js文件。

我尝试从两个require('./app')文件中删除.js,并且:

mix.combine([ ... ], 'public/js/')

......和:

mix.combine([ ... ], 'public/js/', 'public/js/app.js')

......但没有任何区别。

值得一提的是Vue的代码在app.js文件中有效。

我根据我已经找到的位点拼凑了这些,因为我找不到官方指南。

更新

就核心问题而言,@ tompec帮助解决了这个问题。

但是,我认为这可以解决运行search pagefeatured results page时遇到的大量错误,其中每个页面都在执行两个页面的Vue代码,从而导致错误。

1 个答案:

答案 0 :(得分:2)

尝试做类似的事情

mix.js([
    'resources/assets/js/app.js',
    'resources/assets/js/enhanced.js',
    'resources/assets/js/search.js'
], 'public/js/app.js')
   .sass('resources/assets/sass/app.scss', 'public/css');

并从require('./app')resources/assets/js/enhanced.js移除resources/assets/js/search.js

以下是文档:https://github.com/JeffreyWay/laravel-mix/tree/master/docs