找不到模块 'webpack-cli'。

44

我想在我的项目中使用es6,所以我使用了这个教程。但是当我在命令提示符中输入'webpack'时,出现了错误。

    Done in 8.99s.
{ Error: Cannot find module 'webpack-cli'
    at Function.Module._resolveFilename (module.js:470:15)
    at Function.Module._load (module.js:418:25)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)
    at runCommand.then.result (C:\Users\adirz\AppData\Roaming\npm\node_modules\webpack\bin\webpack.js:62:14)
    at process._tickCallback (internal/process/next_tick.js:109:7) code: 'MODULE_NOT_FOUND' }

package.json

   {
  "name": "functions",
  "scripts": {
    "build": "tsc",
    "serve": "npm run build && firebase serve --only functions",
    "shell": "npm run build && firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "main": "lib/index.js",
  "dependencies": {
    "firebase-admin": "~5.12.0",
    "firebase-functions": "^1.0.1"
  },
  "devDependencies": {
    "ts-loader": "^4.2.0",
    "typescript": "^2.5.3",
    "webpack": "^4.5.0",
    "webpack-cli": "^2.0.14",
    "webpack-node-externals": "^1.7.2"
  },
  "private": true
}

我的文件夹结构

在此输入图片描述

6个回答

61

这会生成大量的“gyp”和“pre-gyp”错误 :( - Kokodoko
3
为了解决这个问题,我需要全局安装 webpack 和 webpack-cli。这解决了我的问题,但也让我心中有疑问。既然 webpack-cli 是项目依赖,我们为什么还要全局安装它呢? - Arun Ramachandran

38

将全局安装的软件包链接到您的项目

npm link webpack-cli

很好,如果你在这里是因为使用php laravel,那么在上述命令之后运行:npm run dev - Daniel Sogbey

2

这种方法存在一些轻微的安全风险:如果您的用户受到攻击(例如,如果安装病毒/恶意软件等或者被“黑客”攻击),他们将能够访问您的node_modules文件夹(通常情况下不会;只有超级用户才能更改它)。这可能会让他们替换库,如果这些替换的库曾经被超级用户运行过,攻击者将完全控制您的计算机....实际上,我想这是一个非常小的风险(除非你在NSA工作或者类似的地方,否则攻击者不太可能会寻找这个)...但这确实是一个小风险。 - machineghost

0
如果您使用的是 Yarn 而非 NPM 来全局运行 Webpack,则可以使用以下命令安装 webpack:
yarn global add webpack

和或

yarn global add webpack-cli

0

我曾经遇到过类似的错误。对我来说,答案是确保我的项目路径中没有空格、&或任何其他奇怪的字符。


0
对我来说问题在于我没有使用'sudo'权限。如果您正在使用基于Linux的系统,请尝试键入sudo npm i -g webpack-cli

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接