目前,没有配置任何加载程序来处理此文件格式vuepress

时间:2020-01-10 02:17:45

标签: javascript vue.js webpack vuepress

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

像这样

demo.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以及如何解决此问题。

1 个答案:

答案 0 :(得分:0)

第一步

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

第三步

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

同时添加以下代码

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

不要忘记重启应用