Laravel Mix Transpile依赖

时间:2018-11-16 20:03:54

标签: laravel typescript vue.js webpack laravel-mix

我正在尝试在laravel混合项目中使用vuex-module-decorators库(使用打字稿)。但是我不断收到错误Uncaught TypeError: Class constructor VuexModule cannot be invoked without 'new'。这似乎是known issue,可以通过在我的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中的webpack配置中(还显式包括了依赖项),但是它不起作用。

那么我如何告诉laravel mix转换vuex-module-decorators依赖关系(到es5)?

如果有帮助,这是我的webpack.mix.js文件:

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

2 个答案:

答案 0 :(得分:0)

我能够将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$/,

答案 1 :(得分:0)

我发布了Laravel Mix扩展,用于处理// Transpile all node_modules dependencies mix.transpileNodeModules() // Transpile selected dependencies mix.transpileNodeModules(['swiper', 'dom7']) 依赖项Laravel Mix Transpile Node Modules的反汇编。

SUMMARY = "V4L2Loopback"
DESCRIPTION = "v4l2loopback module"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"


# Use local tarball
SRC_URI = "file://v4l2loopback-master.tar.gz"

# Make sure our source directory (for the build) matches the directory structure in the tarball
S = "${WORKDIR}/v4l2loopback-master"

inherit module

KERNEL_MODULE_AUTOLOAD = "v4l2loopback"