首頁 > 軟體

解決vue-loader載入不上的問題

2020-10-21 15:00:56

前言:

webpack 整合vue 的時候,遇到了一個大坑,找了好多資料才弄好

我們知道 webpack - - -預設 無法解析 .vue 為字尾的檔案,所以webpack需要下載一個解析 .vue 檔案的 loader

下載 vue-loader 的方法有許多 ,我是 使用

vue-loader 是要依賴 vue 的,所以先下載 vue

npm i vue -S

cnpm i vue-loader vue-template-compiler -D

webpack.config.js 中設定相關資訊 注意:這裡設定好了

再給大家看一下 我的 package.json 檔案

注意:

css-loader style-loader 等等 我都已經下載設定完成

{
 "name": "webpack-study",
 "version": "1.0.0",
 "description": "",
 "main": "index.js",
 "scripts": {
 "test": "echo "Error: no test specified" && exit 1",
 "dev": "webpack-dev-server --open --port 3000 --contentBase src --hot"
 },
 "keywords": [],
 "author": "",
 "license": "ISC",
 "devDependencies": {
 "babel-core": "^6.26.3",
 "babel-loader": "^7.1.5",
 "babel-plugin-transform-runtime": "^6.23.0",
 "babel-preset-env": "^1.7.0",
 "babel-preset-stage-0": "^6.24.1",
 "css-loader": "^1.0.0",
 "file-loader": "^2.0.0",
 "html-webpack-plugin": "^3.2.0",
 "less": "^3.8.1",
 "less-loader": "^4.1.0",
 "node-sass": "^4.9.3",
 "sass-loader": "^7.1.0",
 "style-loader": "^0.22.1",
 "url-loader": "^1.1.1",
 "vue-loader": "^15.4.1",
 "vue-template-compiler": "^2.5.17",
 "webpack": "^4.17.1",
 "webpack-dev-server": "^3.1.5"
 },
 "dependencies": {
 "vue": "^2.5.17",
 "webpack-cli": "^3.1.0"
 }
}

重頭戲來了,即使這樣 執行 : npm run dev

仍然無法識別 vue-loader

錯誤原因:

vue-loader@15.*之後除了必須帶有VueLoaderPlugin

解決方案:

需要使用外掛VueLoaderPlugin

在webpack.config.js裡用const VueLoaderPlugin = require('vue-loader/lib/plugin')引入,

然後在module.exports物件裡新增plugins:[new VueLoaderPlugin()]

再次 執行 專案 就可以啦~~~

補充知識:vue-loader載入不上報錯* ./node_modules/vue-loader/lib/index.js You may need an additional loader to handle

報錯程式碼:

ERROR in ./src/login.vue?vue&type=template&id=19e76240& 2:0
Module parse failed: Unexpected token (2:0)
File was processed with these loaders:
 * ./node_modules/vue-loader/lib/index.js
You may need an additional loader to handle the result of these loaders.
| 
> <h1>這是使用.vue檔案渲染出來的</h1>
| 
| 
 @ ./src/login.vue 1:0-84 10:2-8 11:2-17 30:4-35:6 30:68-35:5 32:16-22 33:25-40
 @ ./src/main.js

解決辦法:

const path = require('path');
const htmlWebpackplugin = require('html-webpack-plugin');
const VueLoaderPlugin = require('vue-loader/lib/plugin'); 
 
module.exports = {
  entry: path.join(__dirname,'./src/main.js'),
  output: {
    path: path.join(__dirname, './dist'),
    filename: 'bundle.js'
  },
  plugins: [
    new htmlWebpackplugin({ //建立一個在記憶體中生成的html頁面的外掛
      template: path.join(__dirname, './src/index.html'),
      filename: 'index.html'
    }),
    new VueLoaderPlugin()
  ],
  module: { //這個節點用於設定所有的第三方模組載入器
    rules: [
      {test: /.css$/, use:['style-loader','css-loader']},//設定處理.css檔案的第三方處理規則
      {test: /.less$/, use: ["style-loader",'css-loader','less-loader']},
      {test: /.scss$/, use: ["style-loader",'css-loader','sass-loader']},
      {test: /.(jpg|png|gif|bmp|jpeg)$/, use: "url-loader?limit=8000"},
      {test: /.(tff|eot|svg|woff|woff2)$/, use: "url-loader"},
      {test:/.js$/, use:'babel-loader',exclude:/node_modules/},
      {test: /.vue$/, use: 'vue-loader'}
    ]
  }
};

出來需要設定{test: /.vue$/, use: 'vue-loader'}這個外,還需要載webpack.config.js組態檔中加兩行程式碼:

const VueLoaderPlugin = require('vue-loader/lib/plugin');

new VueLoaderPlugin()

以上這篇解決vue-loader載入不上的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com