错误:找不到模块“ Webpack”


151

我刚刚开始使用webpack,并且很难构建多入口点示例。示例中的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'

我对如何进行一无所知。


2
npm install webpack以前跑过吗?
Johannes Ewald 2015年

是。Webpack已安装并正在处理其他示例。正是在尝试为多入口点示例添加插件时,我遇到了麻烦。
Ed

Error: Cannot find module 'webpack'是节点错误。因此,这与webpack本身无关(实现)。似乎节点在错误的文件夹中查找...
Johannes Ewald

6
我知道,npm install -g webpack对我也不起作用。但这确实可以npm install webpack-调用时请确保您位于应用程序的根文件夹中,npm install webpack然后检查模块是否存在于node_modules文件夹中。这似乎也webpack需要fsevents在Linux系统(可选)模块-我使用的是Windows,所以我不知道-尝试安装fsevents
AndreiDMS

3
如上所述,全局安装对我也不起作用,因此请尝试webpack使用npm install webpack而不在本地应用程序文件夹中进行安装-g
AndreiDMS 2015年

Answers:


272

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

npm link webpack

7
这是最简单的答案。
Thomas W

1
此设置会影响哪个文件?我没有看到对json文件的任何更改。您能详细说明一下吗?
罗伊·纳米尔

似乎没有任何联系。此后webpack-dev-server崩溃了。
浮游生物

在一个月不能使它工作之后,我几乎要放弃并继续使用Angularjs。终于成功了!谢谢。
NestorArturo '18

我正在安装webpack,但我运行的webpack没有任何参数显示,这种消息类型:您要安装哪一个(webpack-cli / web-command)
Ng Sharma,

59

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

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


10
但是您没有提到如何“本地安装”
jpganz18

本地是npm install webpack,没有使用-g。就我而言,这是可行的。
Honza P.

24

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

Node.js在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


1
在Windows 10上对我不起作用。NODE_PATH`值中没有node_modules文件夹,但没有帮助C:\Users\MYNAME\AppData\Roaming\npm`. I tried to set C:\Program Files (x86)\nodejs\node_modules
-VB_

3
适用于Windows 10,我就好了:setx NODE_PATH %AppData%\npm\node_modules。您可能需要cmdNODE_PATH变量可用或运行之前重新启动set NODE_PATH=%AppData%\npm\node_modules
Nux

23

我通过重新安装解决了相同的问题,执行以下命令

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

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


2
包lock.json是罪魁祸首
塞尔吉奥S. Filho的

17

在终端中运行以下命令:

npm install --save-dev webpack

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


9

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


这对我也很有效,因此,如果您遇到此问题,我认为在各种情况下都值得考虑。
JL Peyret

2

如果您已经安装了节点程序包,但仍收到未定义该程序包的消息,则可能是链接到二进制文件的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。 是有关如何在Windows中更改PATH变量的教程。

LINUX: 转到项目根目录并执行此操作...

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

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


1

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

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


1

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


1

你可以试试看

npm install --only=dev

这个对我有用。


0

上面的建议对我没有任何帮助(包括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

0

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


0

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

中存在配置错误webpack.config.js

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


0

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

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

module.js:327抛出错误;

EXEC:错误:找不到模块'........ / 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):错误MSB3073:命令“节点node_modules / webpack / bin / webpack.js --config webpack.config.vendor.js”已退出,代码为1。

建立失败。

我偶然发现了这个问题和答案,我注意到本地实例在该{Project Root} -> Dependencies -> npm文件夹上也有相同的警告标志。右键单击并单击“还原软件包”可以正确加载所有内容,并且我能够成功构建。


0

npm link webpack为我工作。

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


0

全局安装webpack和CLI对我来说都是可行的。

npm i -g webpack webpack-cli
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.