webpack3 升级webpack4 老的项目依赖经常遇见以下报错:
Module build failed (from ./node_modules/_vue-loader@13.7.3@vue-loader/index.js):
TypeError: Cannot read property 'vue' of undefined
at Object.module.exports
(E:\xxx\node_modules\_vue-loader@13.7.3@vue-loader\lib\loader.js:61:18)
报错原因:vue-loader版本不匹配原因;
升级到vue-loader@15
cnpm install vue-loadern@15 -D
需要注意的是,vue-loader^15.x 需要在增加如下配置:
const VueLoaderPlugin = require('vue-loader/lib/plugin')
plugins: [
new VueLoaderPlugin(),
]
顺便贴一下相应的依赖版本:
{
"name": "",
"version": "1.0.0",
"description": "",
"author": "",
"private": true,
"scripts": {
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
"start": "npm run dev",
"build": "node build/build.js"
},
"dependencies": {
"axios": "^0.18.0",
"babel-polyfill": "^6.26.0",
"element-ui": "^2.4.11",
"express": "^4.17.1",
"filemanager-webpack-plugin": "^6.1.7",
"jquery": "^3.3.1",
"leaflet": "^1.8.0",
"script-loader": "^0.7.2",
"style-loader": "^0.23.1",
"vue": "^2.5.2",
"vue-router": "^3.0.1",
"vue2-leaflet": "^2.7.1",
"vuex": "^3.0.1"
},
"devDependencies": {
"@jiaminghi/data-view": "^2.10.0",
"autoprefixer": "^7.2.6",
"babel-core": "^6.22.1",
"babel-helper-vue-jsx-merge-props": "^2.0.3",
"babel-loader": "^7.1.5",
"babel-plugin-syntax-jsx": "^6.18.0",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-plugin-transform-vue-jsx": "^3.7.0",
"babel-preset-env": "^1.7.0",
"babel-preset-stage-2": "^6.22.0",
"chalk": "^2.0.1",
"compression-webpack-plugin": "^9.0.0",
"copy-webpack-plugin": "^4.0.1",
"css-loader": "^2.1.0",
"echarts": "^5.3.3",
"echarts-gl": "^2.0.9",
"extract-text-webpack-plugin": "^4.0.0-beta.0",
"file-loader": "^1.1.4",
"filemanager-webpack-plugin": "^6.1.7",
"friendly-errors-webpack-plugin": "^1.6.1",
"html-webpack-plugin": "^3.2.0",
"node-notifier": "^5.1.2",
"node-sass": "^4.9.0",
"optimize-css-assets-webpack-plugin": "^3.2.0",
"ora": "^1.2.0",
"portfinder": "^1.0.13",
"postcss-import": "^11.0.0",
"postcss-loader": "^2.1.6",
"postcss-url": "^7.2.1",
"rimraf": "^2.6.0",
"sass-loader": "^7.0.1",
"semver": "^5.3.0",
"shelljs": "^0.7.6",
"swiper": "^4.5.1",
"uglifyjs-webpack-plugin": "^1.1.1",
"url-loader": "^1.1.2",
"vue-loader": "^15.10.1",
"vue-style-loader": "^4.1.2",
"vue-template-compiler": "^2.7.14",
"webpack": "^4.46.0",
"webpack-bundle-analyzer": "^3.0.4",
"webpack-cli": "^3.3.12",
"webpack-dev-server": "^3.11.3",
"webpack-merge": "^4.2.2"
},
"engines": {
"node": ">= 10.0.0",
"npm": ">= 6.0.0"
},
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 8"
]
}