2017-07-17 77 views
0

我使用Laravel 5.4 Node.js的6,和Vue.js 2.Vue.js:Laravel混合不合并文件

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在终端窗口中运行。

然而,一直收到第8行中的错误app.js

要求( './引导');

当我评论说,线路输出,过程经过无需额外的错误,但是当我看到: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代码,从而导致错误。

+0

通常'bootstrap.js'进口的jQuery,lodash和应用需要,一些其他的库。你确定它可以在'app.js'的相同目录下吗? – Ikbel

+0

@KiraSan。是的,它在同一个地方。 –

回答

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'); 

resources/assets/js/enhanced.jsresources/assets/js/search.js删除require('./app')

而这里的DOC:https://github.com/JeffreyWay/laravel-mix/tree/master/docs

+0

你已经回答了问题(并且谢谢),所以我必须将其标记为正确。但是,正如我在开场白中所说的那样,还有其他问题,所以我不得不将其作为一个新问题来解决。 –