求助:运行npm run dev时出现Cannot find module 'webpack/bin/config-yargs'错误
解决Cannot find module 'webpack/bin/config-yargs'问题
我一眼就看出你遇到的核心问题是webpack版本与webpack-dev-server版本不兼容。从你的package.json配置能看到,你装了webpack@4.0.0,但搭配的却是webpack-dev-server@2.11.5——这个版本的dev-server只支持webpack 3及以下版本,而webpack 4对核心模块做了大重构,把webpack/bin/config-yargs相关功能移到了webpack-cli里,旧版本的dev-server找不到这个模块,自然就报错了。
下面给你具体的解决步骤:
步骤1:升级webpack-dev-server到兼容webpack 4的版本
先卸载当前的旧版本dev-server:
npm uninstall webpack-dev-server --save-dev
然后安装支持webpack 4的3.x版本(我推荐3.11.2,稳定性不错):
npm install webpack-dev-server@^3.11.2 --save-dev
步骤2:(可选)清理依赖重新安装
如果升级后还是有奇怪问题,可以试试彻底清理现有依赖再重装:
Windows系统:
rmdir /s /q node_modules del package-lock.json npm install
macOS/Linux系统:
rm -rf node_modules package-lock.json npm install
为什么这个方法有效?
webpack 4.x重构时移除了webpack/bin/config-yargs模块,把相关功能整合到了webpack-cli中。而webpack-dev-server@2.x的源码里依然直接引用这个旧模块路径,导致找不到文件报错。升级到webpack-dev-server@3.x之后,它已经适配了webpack 4的模块结构,会正确从webpack-cli中获取所需功能。
另外检查你的package.json,已经正确安装了webpack-cli,这是webpack 4运行必须的依赖,所以这部分不用额外调整。
你的命令行错误输出:
C:\Users\ASUS\Desktop\truffle-webpack-ipfs-bootstrap-master\truffle-webpack-ipfs-bootstrap-master>npm run dev > truffle-init-webpack@0.0.2 dev C:\Users\ASUS\Desktop\truffle-webpack-ipfs-bootstrap-master\truffle-webpack-ipfs-bootstrap-master > webpack-dev-server internal/modules/cjs/loader.js:613 throw err; ^ Error: Cannot find module 'webpack/bin/config-yargs' Require stack: - C:\Users\ASUS\Desktop\truffle-webpack-ipfs-bootstrap-master\truffle-webpack-ipfs-bootstrap-master\node_modules\webpack-dev-server\bin\webpack-dev-server.js at Function.Module._resolveFilename (internal/modules/cjs/loader.js:610:15) at Function.Module._load (internal/modules/cjs/loader.js:526:27) at Module.require (internal/modules/cjs/loader.js:666:19) at require (internal/modules/cjs/helpers.js:16:16) at Object.<anonymous> (C:\Users\ASUS\Desktop\truffle-webpack-ipfs-bootstrap-master\truffle-webpack-ipfs-bootstrap-master\node_modules\webpack-dev-server\bin\webpack-dev-server.js:54:1) at Module._compile (internal/modules/cjs/loader.js:759:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:770:10) at Module.load (internal/modules/cjs/loader.js:628:32) at Function.Module._load (internal/modules/cjs/loader.js:555:12) at Function.Module.runMain (internal/modules/cjs/loader.js:824:10) npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! truffle-init-webpack@0.0.2 dev: `webpack-dev-server` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the truffle-init-webpack@0.0.2 dev script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\ASUS\AppData\Roaming\npm-cache\_logs\2019-08-30T09_10_59_739Z-debug.log
你的package.json配置:
{ "name": "truffle-init-webpack", "version": "0.0.2", "description": "Frontend example using truffle v3", "scripts": { "lint": "eslint ./", "build": "webpack", "dev": "webpack-dev-server" }, "author": "Douglas von Kohorn", "license": "MIT", "devDependencies": { "babel-cli": "^6.22.2", "babel-core": "^6.26.3", "babel-eslint": "^6.1.2", "babel-loader": "^6.2.10", "babel-plugin-transform-runtime": "^6.22.0", "babel-preset-env": "^1.7.0", "babel-preset-es2015": "^6.22.0", "babel-register": "^6.22.0", "copy-webpack-plugin": "^4.6.0", "css-loader": "^3.2.0", "eslint": "^3.14.0", "eslint-config-standard": "^6.0.0", "eslint-plugin-babel": "^4.0.0", "eslint-plugin-mocha": "^4.8.0", "eslint-plugin-promise": "^3.8.0", "eslint-plugin-standard": "^2.0.0", "html-webpack-plugin": "^2.28.0", "json-loader": "^0.5.4", "style-loader": "^0.13.1", "truffle-contract": "^1.1.11", "web3": "^0.20.7", "webpack": "^4.0.0", "webpack-cli": "^3.3.7", "webpack-dev-server": "^2.11.5" }, "dependencies": { "ajv": "^5.5.2", "boostrap": "^2.0.0", "bootstrap": "^4.3.1", "ipfs-api": "^19.0.0", "jquery": "^3.4.1", "node-sass": "^4.8.3", "popper.js": "^1.15.0", "postcss-loader": "^2.1.6", "precss": "^3.1.2", "sass-loader": "^6.0.7" } }
内容的提问来源于stack exchange,提问作者Jessie
相关产品推荐
相关产品推荐

