Webpack: Cannot find module ‘webpack-cli/bin/config-yargs‘ Require 解决办法

一. Cannot find module ‘webpack-cli/bin/config-yargs’ Require

使用webpack工具打包资源,启动程序

npm run dev

此时出现报错:

The CLI moved into a separate package: webpack-cli Please install
‘webpack-cli’ in addition to webpack itself to use the CLI
-> When using npm: npm i -D webpack-cli
-> When using yarn: yarn add -D webpack-cli internal/modules/cjs/loader.js:883 throw err; ^

Error: Cannot find module ‘webpack-cli/bin/config-yargs’ Require
stack:

二. 解决办法

经过上网搜索,发现出现这个错误的主要原因有如下三个:

  1. webpack的版本与webpack-dev-server的版本不兼容,例如两个版本都是3.X,则不能兼容
  2. webpack-cli 包已经从webpack分离出来了,因此需要额外安装webpack-cli包
  3. webpack-cli的版本和webpack-dev-server不兼容,webpack-cli的版本号过高

我们上面报错,原因1的可能性不大(webpack5.27.1和webpack-dev-server3.11.2应该是兼容的)从日志中看,更有可能是原因2
因此用命令添加webpack-cli:

cnpm install webpack-cli --save-dev

安装完成后,我们再用npm run dev启动,发现仍然报错

-> webpack_demo@1.0.0 dev E:\WorkSpace\H5\vue\learn\webpack_demo_2
-> webpack-dev-server --host localhost --port 8888 --open --config webpack.config.js

internal/modules/cjs/loader.js:883 throw err; ^

Error: Cannot find module ‘webpack-cli/bin/config-yargs’ Require
stack:

但这次日志没有直接指出缺少webpack-cli包,说明确实是需要独立安装webpack-cli的。现在的报错可能是原因3,我们检查webpack.config.js,发现版本如下:

  "devDependencies": {
    "webpack": "^5.27.1",
    "webpack-cli": "^4.5.0",
    "webpack-dev-server": "^3.11.2"
  }

webpack-cli版本为4.5.0,比webpack-dev-server3.11.2高很多,因此对其降级。改为合适的版本

    "webpack-cli": "^3.3.12",
解决办法一:
  1. 直接在webpack.config.js做修改,改为以上版本
  2. 然后删除工程目录下的node_modules文件夹
  3. cmd中执行命令cnpm i,让nodejs加载webpack.config.js中已经写好的依赖包版本
解决办法二:

用命令卸载高版本webpack-cli

npm uninstall webpack-cli -g       卸载全局
npm uninstall webpack-cli -D      卸载局部(本地) 

再安装指定版本的 webpack-cli@3.3.12
cnpm install webpack-cli@3.3.12 --save-dev

两种办法选其一,即可成功启动程序


附. 出问题前的操作或基本配置

webpack.config.js配置如下:

var path = require('path');

var config = {
    entry: {
        main: './main'
    },
    output: {
    	publicPath: '/dist/',
        path: path.join(__dirname, './dist'),
        filename: 'main.js'
    }
};

module.exports = config;

index.html:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>webpack App</title>
    <link rel="stylesheet" type="text/css" href="/dist/main.css">
</head>
<body>
    <div id="app">
        Hello World.
    </div>
    <script type="text/javascript" src="/dist/main.js"></script>
</body>
</html>

通过如下cmd命令,加载了必要的依赖:webpack、webpack-dev-server

cnpm install webpack --save-dev
cnpm install webpack-dev-server --save-dev

此时发现,package.json中添加依赖版本如下:

{
  "name": "webpack_demo",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev": "webpack-dev-server --host localhost --port 8888 --open --config webpack.config.js"
  },
  "author": "Albert Guo",
  "license": "ISC",
  "devDependencies": {
    "webpack": "^5.27.1",
    "webpack-dev-server": "^3.11.2"
  }
}
<think>好的,我现在要解决用户遇到的Webpack错误:“Cannot find module 'webpack-cli/package.'”。首先,我需要理解这个错误的原因。用户可能在运行Webpack时缺少必要的依赖包,或者安装的版本不兼容。 根据常见的Webpack问题,这个错误通常是因为没有安装webpack-cliWebpack从版本4开始,将命令行工具分离到了webpack-cli包中,所以单独安装webpack是不够的,必须同时安装webpack-cli。用户可能在项目中只安装了webpack而没有安装cli,或者在全局安装的情况下没有正确安装cli。 接下来,我要考虑解决方法。首先应该建议用户检查是否已经安装了webpack-cli。如果没有安装,需要安装它。可能需要全局安装或者本地安装,视具体情况而定。同时,用户可能使用npm或者yarn,这里用户提到npm,所以应给出npm的命令。此外,版本兼容性也是一个可能的问题,所以可能需要指定版本号。 另外,用户提到的其他引用中有关于npm配置的问题,比如代理设置和版本升级后的警告。虽然这些可能不直接相关,但也需要注意。例如,如果用户的npm配置有问题,可能会导致安装失败,进而引发模块找不到的错误。比如引用[4]中提到了代理设置的问题,如果用户处于需要代理的网络环境,可能需要检查代理配置是否正确,或者尝试删除代理设置。 此外,用户提到的错误信息中还有关于漏洞提示(npm fund vulnerability),这可能是因为安装的包有已知的安全漏洞,但通常这不会导致模块找不到的错误,更多是警告信息。不过,建议用户定期更新依赖以修复漏洞。 现在,我需要整理解决步骤: 1. 确认是否安装了webpack-cli。如果没有,安装它。 2. 建议同时安装webpackwebpack-cli到本地项目或全局,根据用户的使用情况。 3. 检查版本兼容性,可能需要指定较新的版本。 4. 清理npm缓存,有时候缓存问题会导致安装失败。 5. 检查npm的配置,尤其是代理设置,避免因网络问题导致安装失败。 6. 确保node.js和npm的版本符合webpack的要求,可能需要升级或降级。 还要注意用户是否在项目中正确初始化了package.json,如果没有,需要先运行npm init。此外,如果用户同时全局和本地安装了webpack,可能会导致版本冲突,建议统一安装到本地项目中。 在给出解决方案时,需要分步骤说明,并解释每个步骤的原因,确保用户能理解。同时,需要参考用户提供的引用,比如引用[1]中提到的webpack-dev-server的安装和配置,但当前问题可能不直接相关,不过可以提醒用户安装webpack-dev-server时的注意事项。 最后,要生成相关问题,帮助用户进一步排查可能的问题,比如其他依赖缺失、配置错误等。</think>### 解决Webpack中"Cannot find module webpack-cli/package.json"错误的方法 #### 1. 安装webpack-cli依赖 该错误通常是由于未安装`webpack-cli`导致的。Webpack从4.x版本开始将CLI工具分离到独立包中,需手动安装: ```bash npm install webpack webpack-cli --save-dev ``` 或全局安装: ```bash npm install -g webpack webpack-cli ``` #### 2. 验证安装路径 检查是否在正确目录执行命令。如果在项目中操作,需确保`node_modules`存在且包含`webpack-cli`文件夹。可通过以下命令验证: ```bash ls node_modules/webpack-cli/package.json ``` #### 3. 清理npm缓存 若存在缓存问题可尝试: ```bash npm cache clean --force rm -rf node_modules npm install ``` #### 4. 版本兼容性检查 确保安装的webpackwebpack-cli版本兼容。推荐组合: ```bash npm install webpack@5 webpack-cli@4 --save-dev ``` #### 5. 检查npm配置 若出现网络问题(如引用[4]中的代理问题),可尝试重置配置: ```bash npm config delete proxy npm config delete https-proxy ``` #### 6. 验证node.js环境 确保node.js版本符合要求(建议v14+): ```bash node -v npm -v ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

郭Albert

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

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

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

打赏作者

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

抵扣说明:

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

余额充值