Эликсир не определен ошибка

Я использую laravel 5.4, и я хотел настроить elixir для компиляции файлов sass. Я попытался установить elixir, запустив $ npm install, а после этого я попытался запустить $ gulp, но это дало мне следующую ошибку:

/home/vagrant/Code/Laravel/gulpfile.js:1
(function (exports, require, module, __filename, __dirname) { elixir(mix => {
                                                              ^

ReferenceError: elixir is not defined
    at Object.<anonymous> (/home/vagrant/Code/Laravel/gulpfile.js:1:63)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at execute (/usr/lib/node_modules/gulp-cli/lib/versioned/^3.7.0/index.js:24:18)
    at Liftoff.handleArguments (/usr/lib/node_modules/gulp-cli/index.js:149:63)

После добавления const elixir = require('laravel-elixir'); я получаю эту ошибку:

[02:28:30] Starting 'webpack'...
{ [Error: ./resources/assets/js/components/Example.vue
Module parse failed: /home/vagrant/Code/Laravel/resources/assets/js/components/Example.vue Unexpected token (1:0)
You may need an appropriate loader to handle this file type.
| <template>
|     <div class="container">
|         <div class="row">
 @ ./resources/assets/js/app.js 16:25-60]
  message: './resources/assets/js/components/Example.vue\nModule parse failed: /home/vagrant/Code/Laravel/resources/assets/js/components/Example.vue Unexpected token (1:0)\nYou may need an appropriate loader to handle this file type.\n| <template>\n|     <div class="container">\n|         <div class="row">\n @ ./resources/assets/js/app.js 16:25-60',
  showStack: false,
  showProperties: true,
  plugin: 'webpack-stream',
  __safety: { toString: [Function: bound ] } }

person ottsharp13    schedule 01.02.2017    source источник
comment
вам может понадобиться добавить эликсир в список импорта как: const { elixir } = require('laravel-elixir');   -  person PaladiN    schedule 01.02.2017
comment
В каком файле? @ПаладиН   -  person ottsharp13    schedule 01.02.2017
comment
Если вы звоните из Webpack.mix.js, используйте вышеуказанный импорт, а если вы используете gulpfile.js (как я вижу, вы используете), используйте const elixir = require('laravel-elixir');   -  person PaladiN    schedule 01.02.2017
comment
@PaladiN после добавления этой строки я получаю указанную выше строку ... это другая проблема?   -  person ottsharp13    schedule 04.02.2017
comment
Ошибка связана с тем, что laravel-elixir не знает о компоненте .vue. Вам нужно добавить github.com/vuejs/laravel-elixir-vue-2 для компиляции .vue компонентов.   -  person PaladiN    schedule 04.02.2017


Ответы (1)


У меня такая же проблема при установке нового приложения laravel 5.4. Когда я пытаюсь запустить gulp webpack, в моей консоли отображается та же ошибка. Итак, что я сделал, так как laravel 5.4 поставляется с новой версией vue, которая называется vue 2. Вам необходимо потребовать require('laravel-elixir-vue-2'); См. образец ниже:

gulpfile.js

var elixir = require('laravel-elixir');
require('laravel-elixir-vue-2'); // recommended for vue 2
elixir(function(mix) {
    // some mixes here..
    mix.webpack('app.js');
});

Если у вас есть ошибки, например, связанные с эликсиром, просто установите их с помощью npm. также проверьте эту страницу здесь .

person claudios    schedule 06.03.2017