Webpack5 vue-loader和VueLoaderPlugin

vue-loader是Webpack的加载器,处理.vue文件,将模板、样式和脚本转化为JavaScript模块。VueLoaderPlugin是解析Vue.js的Webpack插件,用于解析.vue文件。使用vue-loader时,可配置预编译语言如SASS,并需注意只需安装vue-loader,即可通过它引入VueLoaderPlugin。


vue-loader和VueLoaderPlugin的作用

.vue 文件是用户用 HTML-like 的语法编写的 Vue 组件。每个vue 文件都包括三部分 ,

VueLoaderPlugin 是一个解析 Vue.js 的插件,用于在 webpack 构建过程中解析和转换 .vue 单文件组件。它的作用是将 .vue 文件中的模板、样式和脚本进行编译,并将其转换为 JavaScript 模块,以供Webpack打包使用。

vue-loader 是一个 Webpack 加载器(loader),它与 VueLoaderPlugin 配合使用,用于处理 .vue 单文件组件。它会读取 .vue 文件的内容,并根据配置对其中的模板、样式和脚本进行相应的转换和编译,最终生成可在浏览器运行的 JavaScript 模块。

简单来说,VueLoaderPlugin 是一个插件,用于告诉 webpack 如何处理和解析 .vue 文件,而 vue-loader 则是实际执行加载和转换 .vue 文件的加载器。

vue-loader具体使用方式

vue-loader 默认用没有用语言编译器,想CSS 预编译和HTML模板编译语言等,如果想用这些功能,需要设置 lang 属性的来实现。例如,你可以在组件的样式中这样用 SASS

   // vue-loader不支持oneOf
      {
        test: /\.vue$/,
        loader: "vue-loader", // 内部会给vue文件注入HMR功能代码
        options: {
          // 开启缓存
          cacheDirectory: path.resolve(
            __dirname,
            "node_modules/.cache/vue-loader"),
         }
      }

注意事项

需要注意的是这两只需要下载 vue-loader 这个依赖就可以全部实现了,因为可以通过vue-loader去引入VueLoaderPlugin,具体方法就是:
const { VueLoaderPlugin } = require(“vue-loader”);

当遇到 'Module parse failed: Unexpected token (1:8)' 错误,且是在使用 @dcloudio/vue-cli-plugin-uni 相关加载器(templateLoader.jswebpack-preprocess-loaderwebpack-uni-app-loader 等)处理文件时出现,可参考以下解决思路: ### 1. 检查加载器配置 webpack 默认不能处理 vue 文件,需要添加额外的插件加载器进行处理。可按如下步骤操作: - 安装插件: ```bash cnpm i vue-loader vue-template-compiler --save-dev ``` -webpack.config.js 中添加配置: ```javascript module.exports = { module: { rules: [ { test: /\.vue$/, use: { loader: 'vue-loader' } } ] } }; ``` ### 2. 处理 vue-loader 版本问题 若重新运行后仍报错,可能是 vue-loader 版本过高导致。可通过以下两种方式解决: - **方式一:降低 vue-loader 版本** 将 vue-loader 版本降低到 14.0.0 以下,例如: ```bash cnpm i vue-loader@13.0.0 --save-dev ``` - **方式二:添加额外配置** 在 webpack.config.js 中引入并使用 VueLoaderPlugin: ```javascript const VueLoaderPlugin = require('vue-loader/lib/plugin'); module.exports = { plugins: [ new VueLoaderPlugin() ], module: { rules: [ { test: /\.vue$/, use: { loader: 'vue-loader' } } ] } }; ``` ### 3. 检查 @dcloudio/vue-cli-plugin-uni 相关加载器 确保 @dcloudio/vue-cli-plugin-uni 相关加载器(templateLoader.jswebpack-preprocess-loaderwebpack-uni-app-loader 等)的配置正确,版本兼容。可以尝试更新这些加载器到最新版本: ```bash npm update @dcloudio/vue-cli-plugin-uni ``` ### 4. 检查文件语法 错误提示中的 'Unexpected token (1:8)' 表明文件的第一行第八个字符处有意外的符号。需要检查对应文件的语法,确保没有拼写错误、缺少引号、括号不匹配等问题。 ### 5. 清除缓存 有时候缓存文件可能会导致此类错误,可以尝试清除 npm 项目的缓存: ```bash npm cache clean --force rm -rf node_modules/.cache ``` 然后重新安装依赖: ```bash npm install ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有趣的小良

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值