gulp: Ошибка синтаксического анализа модуля

Я работаю с Laravel 5.3.

Ошибки, которые я получаю после установки node-uuid.

{ [Ошибка: ./~/diffie-hellman/lib/primes.json Ошибка синтаксического анализа модуля: /var/www/html/filecloudprod/node_modules/diffie-hellman/lib/primes.json Неожиданный токен (2:11) Вы можете нужен соответствующий загрузчик для обработки этого типа файла.

Мой файл package.json. Обратите внимание на загрузчик json

{
  "private": true,
  "scripts": {
    "prod": "gulp --production",
    "dev": "gulp watch"
  },
  "devDependencies": {
    "gulp": "^3.9.1",
    "jquery": "^3.1.0",
    "laravel-elixir": "^6.0.0-9",
    "laravel-elixir-browsersync-official": "^1.0.0",
    "laravel-elixir-vue-2": "^0.2.0",
    "laravel-elixir-webpack-official": "^1.0.2",
    "lodash": "^4.16.2",
    "vue": "^2.0.1",
    "vue-resource": "^1.0.3",
    "dropzone": "^4.3.0",
    "animate.css": "^3.5.0",
    "node-uuid": "^1.4.7",
    "json-loader": "^0.5.4"
  }
}

Затем попытался объединить конфигурацию веб-пакета, подобную этой, в gulpfile. Я попробовал 2 разных подхода, см. TRY1 и TRY2, конечно, не одновременно, просто опубликовал оба подхода.

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

require('laravel-elixir-vue-2');

// TRY 1
elixir.webpack.mergeConfig({
    module: {
        loaders: [{
            test: /\.json$/,
            loader: 'json'
        }]
    }
});

// TRY 2 
elixir.ready(() => {
    elixir.config.js.webpack = {
        loaders: [{
            test: /\.json$/,
            loader: 'json'
        }]
    }
});

elixir(function (mix) {

    mix.sass('app.scss');

    mix.webpack('app.js');

    mix.browserSync({
        proxy: 'filecloud.dev'
    });    

    mix.version(['css/app.css', 'js/app.js']);
});

Но я все еще получаю ошибку.

Полная ошибка

введите описание изображения здесь


person Ilario Engler    schedule 27.10.2016    source источник


Ответы (1)


Если вы хотите использовать модули npm, для которых требуется json-loader, это решение.

Добавьте следующее в файл package.json.

"json-загрузчик": "^0.5.4"

Создайте webpack.config.js со следующим кодом:

Elixir.webpack.mergeConfig({

    module: {
        loaders: [{
            test: /\.json$/,
            loader: 'json'
        }]
    }
});

Теперь вы можете требовать пакеты в вашем файле bootstrap.js, для которых требуется json-loader.

Дополнительные примечания

Если вы посмотрите на файл index.js, в котором определен метод webpack для elixir, вы увидите, что внутри массива загрузчиков отсутствует загрузчик json.

module: {
    loaders: [{ test: /\.js$/, loader: 'buble', exclude: /node_modules/ }]
},
person Ilario Engler    schedule 28.10.2016