错误:找不到模块“webpack”

226

我刚开始学习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'

我不知道该怎么继续下去了。


4
你之前执行过 npm install webpack 吗? - Johannes Ewald
1
“Error: Cannot find module 'webpack'”是一个node错误。因此,这与webpack本身无关(依我所见)。似乎node在查找错误的文件夹... - Johannes Ewald
8
我明白了,npm install -g webpack 对我也不起作用。但是使用npm install webpack可以。请确保在调用npm install webpack时您在应用程序的根文件夹中,并检查模块是否存在于node_modules文件夹中。此外,似乎webpack在Linux系统上需要fsevents(可选)模块 - 我正在使用Windows,所以不确定 - 也尝试安装fsevents - AndreiDMS
3
如上所述,全局安装对我也不起作用,因此请尝试在本地应用程序文件夹中安装 webpack,使用 npm install webpack 命令,不要加上 -g - AndreiDMS
在Mac本地主机上,如果只安装了全局的Webpack,则会显示相同的错误,但是如果同时安装全局和本地项目,则可以正常工作。 - user1775888
显示剩余11条评论
25个回答

1
在Windows上,我注意到如果您没有管理员权限(即您不是本地管理员),则会出现此问题。 正如其他人建议的那样,解决方案似乎是通过不使用-g提示来进行本地安装。

1

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

webpack.config.js中有配置错误,

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


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

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

1
你可以尝试这个。

npm install --only=dev

它对我有效。


0

以上提到的方法都对我没用(包括NODE_PATH变量)。我在本地文件夹中创建了一个“node_modules”的符号链接,指向全局AppData文件夹(如下所示),这个方法非常有效。

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

Laravel 用户

如果以上选项都无法解决您的问题,那么您可能需要正确安装 Laravel-mix。以下是操作步骤:

npm install laravel-mix --save-dev

现在使用以下命令创建一个 webpack.mix.js 文件:

touch webpack.mix.js

将以下代码添加到您的 webpack.mix.js 文件中:

mix.js('resources/js/app.js', 'public/js').postCss('resources/css/app.css', 'public/css', [
    require('postcss-import'),
    require('tailwindcss'),
    require('autoprefixer'),
]);

你可能还需要使用命令touch tailwind.config.js创建一个tailwind.config.js文件,然后将以下代码添加到其中:


module.exports = {
    content: [
        './vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php',
        './storage/framework/views/*.php',
        './resources/views/**/*.blade.php',
    ],

    theme: {
        extend: {
            fontFamily: {
                sans: ['Nunito', ...defaultTheme.fontFamily.sans],
            },
        },
    },

    plugins: [require('@tailwindcss/forms')],
};

最后运行 npm run dev


0

对我来说,npm link webpack 运行正常。

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


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

0

我在VS 2017中遇到了很多问题,无法构建一个非常简单的.NET Core 2.0应用程序。这是来自AppVeyor的错误信息,但本地基本上是相同的(为了安全起见省略了一些路径):

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

module.js:327 throw err;

EXEC : error : 找不到模块“......../node_modules/webpack/bin/webpack.js”

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

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

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

at startup (node.js:140:18)

at node.js:1043:3

csproj(25,5): error MSB3073: 命令“node node_modules/webpack/bin/webpack.js --config webpack.config.vendor.js”已退出,代码为1。

构建失败。

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

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