首页 > 解决方案 > 目前没有配置加载程序来处理这个文件表单 vuepress

问题描述

我要导入第三方库去了我用的是vuepress。我应该配置一个规则来编译 node_modules js 文件。但它不起作用。

像这样

演示.vue

<template>
  <DatePanel/>
</template>

<script>
import DatePanel from 'element-ui/packages/date-picker/src/panel/date-range.vue';

export default {
  name: 'date-pick',
  components: {
    DatePanel
  }
}

</script>

docs/.vuepress/config.js

module.exports = {
  // here is my config
  chainWebpack: (config, isServer) => {
    config.module
      .rule('compile')
      .test(/\.js$/)
      .include
      .add(resolve('node_modules/element-ui/packages'))
      .add(resolve('node_modules/element-ui/src'))
      .end()
      .exclude
      .add(resolve('node_modules/element-ui/src/utils/date.js'))
      .end()
      .use("babel-loader")
      .loader('babel-loader')
      .tap(options =>
        merge(options, {
          presets: [
            '@vue/app'
          ]
        })
      );
  }
}

错误形式 devtools

main.js:1 Uncaught Error: Module parse failed: Unexpected token (65:6)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
|     }, this.$slots.default);
|     const wrap = (
>       <div
|         ref="wrap"
|         style={ style }
    at eval (main.js:1)
    at Object../node_modules/element-ui/packages/scrollbar/src/main.js (app.js:4201)
    at __webpack_require__ (app.js:770)
    at fn (app.js:130)
    at eval (index.js?2020:1)
    at Module../node_modules/element-ui/packages/scrollbar/index.js (app.js:4190)
    at __webpack_require__ (app.js:770)
    at fn (app.js:130)
    at eval (cjs.js?!./node_modules/@vuepress/core/node_modules/vue-loader/lib/index.js?!./node_modules/element-ui/packages/date-picker/src/basic/time-spinner.vue?vue&type=script&lang=js&:3)
    at Module../node_modules/@vuepress/core/node_modules/cache-loader/dist/cjs.js?!./node_modules/@vuepress/core/node_modules/vue-loader/lib/index.js?!./node_modules/element-ui/packages/date-picker/src/basic/time-spinner.vue?vue&type=script&lang=js& (app.js:1520)

如何配置chainWebpack以及如何解决此问题。

标签: javascriptvue.jswebpackvuepress

解决方案


步骤1

添加加载器配置vue.config.js

  chainWebpack: (config) => {
    config.output.filename("[name].[hash:8].js");
    const types = ["vue-modules", "vue", "normal-modules", "normal"];
    types.forEach((type) =>
      addStyleResource(config.module.rule("scss").oneOf(type))
    );
    config.module
      .rule("thejs")
      .test(/\.js$/)
      .include.add(path.resolve("src"))
      .add(path.resolve("node_modules/element-ui/packages"))
      .end()
      .use("babel-loader")
      .loader("babel-loader")
      .end();
  },

第2步

安装这两个包来编译 JSX

babel-helper-vue-jsx-merge-props & babel-loader

第 3 步

babel.config.js文件添加到根目录

同时添加以下代码

module.exports = {
  presets: ["@vue/app"],
};

不要忘记重新启动应用程序


推荐阅读