【问题标题】:Using gulp, webpack, and the babel-loader: Fails to compile jsx使用 gulp、webpack 和 babel-loader:无法编译 jsx
【发布时间】:2017-03-25 03:22:35
【问题描述】:

更新vue-tables-2 现在是预编译的,因此不需要加载器。对于templates 选项,建议使用作用域插槽,它也不需要任何特殊设置

我正在使用 gulp、webpack 和 babel-loader 来构建一些文件(vue-tables-2):

gulp.task('scripts-vue-tables', function() {
    gulp.src('node_modules/vue-tables-2/index.js')
        .pipe(webpackstream({
                output: {
                    path: __dirname,
                    filename: "vue-tables-2.js",
                    library: 'VueTables2',
                    libraryTarget: 'var'
                }
            }
        ))
        .pipe(gulp.dest('public/vendor/vue-tables-2/js/'));
}

webpack.config.js我已经包括:

loaders: [
        {
            test: /\.jsx?$/,
            loader: 'babel-loader',
            query: {
                presets: ["latest", "react", "stage-0"],
                plugins: ["transform-vue-jsx"]
            }
        },
    ]

并在.babelrc中包含相同的内容:

{
  "presets": ["latest", "react", "stage-0"],
  "plugins": ["transform-vue-jsx"]
}

但是,运行 scripts-vue-tables 任务会产生错误:

Module parse failed: \node_modules\vue-tables-2\lib\template.jsx Unexpected token (15:7)
You may need an appropriate loader to handle this file type.

注意:总的来说,我尝试按照here 列出的步骤进行操作。

【问题讨论】:

  • 您确定webpackstream 会尝试读取webpack.config.js 吗?我希望您在 gulp 任务中拥有该配置。
  • 谢谢!如果您将此评论变成答案,我会将其标记为解决方案

标签: webpack vue.js babeljs jsx vue-tables-2


【解决方案1】:

webpack.config.js 是使用 webpack CLI 接口读取的文件,但在 Gulp 示例用例中,不会使用它。你可能想要类似的东西

    .pipe(webpackstream(Object.assign({
        output: {
            path: __dirname,
            filename: "vue-tables-2.js",
            library: 'VueTables2',
            libraryTarget: 'var'
        },
    }, require('./webpack.config')))

加载 Webpack 配置特殊的output 逻辑。

【讨论】:

  • vue-tables-2 现在是预编译的,所以不需要加载器。对于模板选项,建议使用作用域插槽,它也不需要任何特殊设置。
猜你喜欢
  • 2017-03-14
  • 2019-12-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-10
  • 2016-06-05
  • 2016-08-01
  • 2017-06-09
  • 1970-01-01
相关资源
最近更新 更多