【问题标题】:Error: Cannot find module 'webpack'错误:找不到模块“webpack”
【发布时间】:2015-06-12 02:07:12
【问题描述】:

我刚刚开始使用 webpack,并且很难构建 multiple-entry-points sample。示例中的 webpack.config.js 文件包含该行

 var CommonsChunkPlugin = require("../../lib/optimize/CommonsChunkPlugin");

这对我来说失败并出现错误

Error: Cannot find module '../../lib/optimize/CommonsChunkPlugin'

四处搜索,我发现了将 CommonsChunkPlugin 与表达式一起使用的其他示例

var commonsPlugin = new webpack.optimize.CommonsChunkPlugin("common.js");

由于错误而失败

ReferenceError: webpack is not defined

更多搜索发现了一些示例,包括

var webpack = require('webpack');

我的构建现在失败了

Error: Cannot find module 'webpack'

我不知道如何继续。

【问题讨论】:

  • 你之前跑过npm install webpack吗?
  • 是的。 Webpack 已安装并正在处理其他示例。我在尝试为多入口点示例添加插件时遇到了麻烦。
  • Error: Cannot find module 'webpack' 是节点错误。所以这与 webpack 本身(afact)无关。似乎节点正在寻找错误的文件夹...
  • 我明白了,npm install -g webpack 也不适合我。但它适用于npm install webpack - 确保您在调用npm install webpack 时位于应用程序根文件夹中,然后检查模块是否存在于node_modules 文件夹中。似乎webpack 在 linux 系统上需要 fsevents(可选)模块 - 我使用的是 Windows,所以我不确定 - 也尝试安装 fsevents
  • 正如我上面所说,全局安装对我也不起作用,所以尝试在本地应用程序文件夹中安装webpack,使用npm install webpack,不使用-g

标签: node.js webpack


【解决方案1】:

虽然建议的解决方案 (npm link webpack) 在本地工作,但在我的 CI(GitHub 操作)上我遇到了同样的问题,我使用了解决它:

 npm i --save-dev webpack

【讨论】:

    【解决方案2】:

    在我的情况下,帮助我更改了父文件夹名称并从此名称中删除了一些 &,您也可以尝试更改保存代码的名称或文件夹。

    【讨论】:

      【解决方案3】:

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

      npm link webpack
      

      查看official documentationyarn link

      【讨论】:

      • 这是最简单的答案。
      • 此设置会影响哪个文件?我没有看到对 json 文件的任何更改。能详细点吗?
      • 似乎无论如何都无法取消链接。 webpack-dev-server 在此之后崩溃了。
      • 在一个月无法让它工作之后,我非常接近放弃并继续使用 Angularjs。这终于奏效了!谢谢。
      • 我正在安装 webpack,但是我运行 webpack 时没有任何参数显示,这种类型的消息:你想安装哪一个(webpack-cli/web-command)
      【解决方案4】:

      如果您已经安装了一个节点包并且仍然收到该包未定义的消息,那么您可能在 PATH 链接到二进制文件时遇到了问题。只是为了澄清二进制文件和可执行文件本质上是做同样的事情,即执行一个包或应用程序。 ei webpack... 执行节点包webpack。

      在 Windows 和 Linux 中都有一个全局二进制文件夹。在 Windows 中我相信它类似于 C://Windows/System32 而在 Linux 中它是 usr/bin。当您打开终端/命令提示符时,它的配置文件将 PATH 变量链接到全局 bin 文件夹,因此您可以从中执行包/应用程序。

      我最好的猜测是全局安装 webpack 可能没有成功将可执行文件放入全局二进制文件夹中。如果没有可执行文件,您将收到一条错误消息。这可能是另一个问题,但可以肯定地说,如果您在这里阅读本文,那么全局运行 webpack 对您不起作用。

      我对这个问题的解决方案是取消全局运行 webpack 并将 PATH 链接到 node_module 二进制文件夹,即 /node_modules/.bin。

      WINDOWS: 将 node_modules/.bin 添加到您的 PATH 中。 Here 是一个关于如何在 windows 中更改 PATH 变量的教程。

      Linux: 转到您的项目根目录并执行此操作...

      export PATH=$PWD/node_modules/.bin:$PATH 
      

      在 Linux 中,每次打开终端时都必须执行此命令。 This 此处的链接向您展示了如何永久更改 PATH 变量。

      【讨论】:

        【解决方案5】:

        对于 Visual Studio 用户:右键单击 npm 文件夹和“Restore Packages”。

        【讨论】:

          【解决方案6】:

          全局安装 webpack 和 CLI 对我有用。

          npm i -g webpack webpack-cli
          

          【讨论】:

            【解决方案7】:

            npm 链接 webpack 为我工作。

            我的 webpack 配置: "webpack": "^4.41.2", "webpack-dev-server": "^3.9.0", "webpack-cli": "^3.3.10"

            【讨论】:

              【解决方案8】:

              我通过重新安装解决了同样的问题,执行这些命令

              rm -Rf node_modules
              rm -f package-lock.json
              npm install
              

              rm总是一个危险的命令,尤其是-f,在执行之前请注意!!!!!!

              【讨论】:

              • package-lock.json 是罪魁祸首
              • @SérgioS.Filho 怎么样?
              • 由于任何问题,我也不得不更改 Node 版本,但删除 package-lock.json 对于解决问题至关重要。删除 node_modules 并重新开始清理
              【解决方案9】:

              你可以试试这个。

              npm install --only=dev
              

              它对我有用。

              【讨论】:

                【解决方案10】:

                在终端中运行以下命令:

                npm install --save-dev webpack

                npm install --save-dev webpack-dev-server

                【讨论】:

                  【解决方案11】:

                  打开 npm 命令提示符和 -- cd 解决方案文件夹 然后 只需在 NPM cmd prommt 中运行 npm link webpack 并重新构建..

                  【讨论】:

                    【解决方案12】:

                    在 VS 2017 中构建一个非常简单的 .NET Core 2.0 应用程序时遇到了很多问题。这是来自 AppVeyor 的错误,但在本地基本上是一样的 (出于安全考虑,省略了一些路径):

                    正在执行首次运行的 Webpack 构建...

                    module.js:327 抛出错误;

                    执行:错误:找不到模块'......../node_modules/webpack/bin/webpack.js'

                    在 Function.Module._resolveFilename (module.js:325:15)

                    在 Function.Module._load (module.js:276:25)

                    在 Function.Module.runMain (module.js:441:10)

                    在启动时 (node.js:140:18)

                    在 node.js:1043:3

                    csproj(25,5): error MSB3073: The command "node node_modules/webpack/bin/webpack.js --config webpack.config.vendor.js" exited with code 1.

                    构建失败。

                    我偶然发现了this question and answer,我注意到我的本地实例在{Project Root} -> Dependencies -> npm 文件夹上也有相同的警告标志。右键单击并点击“恢复包”可以正确加载所有内容,并且我能够成功构建。

                    【讨论】:

                      【解决方案13】:

                      对我来说,这是一个错误的错误反馈。

                      webpack.config.js 出现配置错误,

                      删除文件并重新开始解决了我的问题

                      【讨论】:

                        【解决方案14】:

                        刚刚发现使用 Atom IDE 终端 并没有在本地安装依赖项(可能是错误或只是我)。在外部安装 git bash 并再次运行 npm 命令对我有用

                        【讨论】:

                          【解决方案15】:

                          上面的建议对我没有用(包括 NODE_PATH 变量)。我创建了一个从本地文件夹到全局 AppData(例如下面)的“node_modules”符号链接,它就像魅力一样工作。

                          C:\Users\mmoinuddin\AppData\Roaming\npm>mklink /D node_modules c:\essportreact\day1\node_modules
                          symbolic link created for node_modules <<===>> c:\essportreact\day1\node_modules
                          C:\essportreact\day1>webpack
                          Hash: 2a82a67f90f9aa05ab4a
                          Version: webpack 1.15.0
                          

                          【讨论】:

                            【解决方案16】:

                            在 Windows 上,我观察到如果您在计算机上没有管理权限(即您不是本地管理员),则会出现此问题。

                            正如其他人建议的那样,解决方案似乎是不使用-g 提示在本地安装。

                            【讨论】:

                              【解决方案17】:

                              我在 OS X 上遇到了这个问题,这似乎是由全局安装的 webpack 和本地安装的 webpack-dev-server 之间的版本不匹配引起的。将两者更新到最新版本即可解决此问题。

                              【讨论】:

                              • 这对我也有用,所以我认为如果你有这个问题,在各种情况下都值得考虑。
                              【解决方案18】:

                              在 Windows 上工作时,我在本地安装了 webpack,它解决了我的问题

                              因此,在您的命令提示符下,转到您要运行 webpack 的目录,在本地安装 webpack(不带 -g)并享受...

                              【讨论】:

                              • 但你没有提到如何“本地”安装它
                              • 本地是 npm install webpack ,没有使用提到的 -g 。这在我的情况下有效。
                              【解决方案19】:

                              似乎是一个常见的 Windows 问题。这为我解决了问题:

                              Nodejs cannot find installed module on Windows?

                              “添加一个名为 NODE_PATH 的环境变量并将其设置为 %USERPROFILE%\Application Data\npm\node_modules (Windows XP)、%AppData%\npm\node_modules (Windows 7) 或 npm 最终安装您的 Windows 风格的模块的任何位置。要完成它一劳永逸地,将其作为系统变量添加到“系统属性”对话框的“高级”选项卡中(运行 control.exe sysdm.cpl,System,3)。”

                              请注意,您实际上不能在 NODE_PATH 的值内使用其他环境变量。也就是说,不要只是复制并粘贴上面的字符串,而是将其设置为实际解析的路径,如C:\Users\MYNAME\AppData\Roaming\npm\node_modules

                              【讨论】:

                              • 在 Windows 10 上不适合我。C:\Users\MYNAME\AppData\Roaming\npm`. I tried to set NODE_PATH` 值 C:\Program Files (x86)\nodejs\node_modules 中没有 node_modules 文件夹,但它没有帮助
                              • 在 Windows 10 上对我来说很好用:setx NODE_PATH %AppData%\npm\node_modules。在NODE_PATH 变量可用之前,您可能需要重新启动cmd,或者还需要运行set NODE_PATH=%AppData%\npm\node_modules
                              • 是的。在 Windows 10 上运行良好。
                              猜你喜欢
                              • 2016-07-23
                              • 2016-10-17
                              • 1970-01-01
                              • 2022-11-22
                              • 2018-04-03
                              • 2020-09-14
                              • 2020-01-20
                              • 2017-06-02
                              相关资源
                              最近更新 更多