未捕获的ReferenceError:require未在require中定义(' ./ bootstrap')Laravel Mix

时间:2017-03-23 07:34:25

标签: javascript laravel webpack mix

我使用Laravel Mix编译了样式表和javascript文件,代码如下:

const { mix } = require('laravel-mix');

/*
 |--------------------------------------------------------------------------
 | Mix Asset Management
 |--------------------------------------------------------------------------
 |
 | Mix provides a clean, fluent API for defining some Webpack build steps
 | for your Laravel application. By default, we are compiling the Sass
 | file for the application as well as bundling up all the JS files.
 |
 */

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

mix.babel([
    'public/js/plugins/loaders/pace.min.js',
    'resources/assets/js/app.js',
    'public/js/plugins/loaders/blockui.min.js',
    'public/js/plugins/ui/nicescroll.min.js',
    'public/js/plugins/ui/drilldown.js',
    'public/js/plugins/ui/fab.min.js',
    'public/js/plugins/forms/selects/select2.min.js',
    'public/js/plugins/forms/styling/uniform.min.js',
    'public/js/plugins/ui/moment/moment.min.js',
    'public/js/plugins/ui/fullcalendar/fullcalendar.min.js',
    'public/js/core/app.js',
    'public/js/pages/user_pages_profile.js',
] , 'public/js/app.js');

mix.styles([
    'public/css/icons/icomoon/styles.css',
    'resources/assets/sass/app.scss',
    'public/css/core.css',
    'public/css/components.css',
    'public/css/colors.css',
],'public/css/app.css');


以下是我的 app.js

/**
 * First we will load all of this project's JavaScript dependencies which
 * includes Vue and other libraries. It is a great starting point when
 * building robust, powerful web applications using Vue and Laravel.
 */

require('./bootstrap'); //complains on this line after compilation

/**
 * Next, we will create a fresh Vue application instance and attach it to
 * the page. Then, you may begin adding components to this application
 * or customize the JavaScript scaffolding to fit your unique needs.
 */

Vue.component('example', require('./components/Example.vue'));

const app = new Vue({
    el: '#app'
});


它抱怨必需
未捕获的ReferenceError:在app.js:354 中未定义require,这是已编译的 app.js
我试过了:
1- mix.scripts
2- mix.babel (根据文档,这会将所有ES2015代码翻译成所有浏览器都能理解的vanilla JavaScript。)
我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

您的节点版本很可能已过期。 Node JS 6是第一个处理ES2015模块的版本。运行

检查节点版本
node -v

如果您使用的是Ubuntu 16,则需要添加源存储库以提取更新版本的节点。运行以下命令可以使您获得最新版本

cd ~
curl -sL https://deb.nodesource.com/setup_6.x -o nodesource_setup.sh
sudo bash nodesource_setup.sh
sudo apt-get install nodejs
sudo npm update -g npm 
sudo ln -s /usr/bin/nodejs /usr/bin/node

现在尝试运行 npm run dev ,一切都应该在Laravel mix中正常编译。