Laravel микс транспилирует зависимость - PullRequest
0 голосов
/ 16 ноября 2018

Я пытаюсь использовать библиотеку vuex-module-decorators в проекте Laravel Mix (с использованием машинописи).Но я продолжаю получать ошибку Uncaught TypeError: Class constructor VuexModule cannot be invoked without 'new'.Похоже, что это известная проблема , и ее можно решить, добавив transpileDependencies: ['vuex-module-decorators'] в мой файл vue.config.js, который сообщит babel о необходимости переносить пакет.

Так как я использую laravel mixДобавление файла vue.config.js ничего не делает.И я не могу понять, как сказать laravel mix для переноса зависимости vuex-module-decorators.

Я попытался добавить { test: /\.js$/, loaders: ['babel-loader'] }, в конфигурацию веб-пакета в webpack.mix.js (также с явным включением зависимости), но этоне работает.

Итак, как я могу сказать laravel mix для переноса зависимости vuex-module-decorators (в es5)?

Если это поможет, вот мой webpack.mix.js файл:

mix
  .ts('resources/ts/app.ts', 'public/js')
  .stylus('resources/stylus/app.styl', 'public/css');

1 Ответ

0 голосов
/ 09 января 2019

Я смог указать babel-loader на все .js файлы, и это сработало:

// In webpack.mix.js
mix.webpackConfig({
   module: {
     rules: [{
       test: /\.js?$/,
       use: [{
         loader: 'babel-loader',
         options: mix.config.babel()
       }]
     }]
   }
 });

Однако ваше время компиляции будет сокращено, если использовать более конкретный test для таргетинга только на те модули, которые вам нужны для переноса:

    test: /node_modules\/(vuex-module-decorators|vuex-persist)\/.+\.js$/,
...