Webpack: 无法读取未定义的属性“ match”

我使用 npm 安装了 webpack (Symfony encore) ,如下所示:

sudo npm install -g @symfony/webpack-encore --save-dev

我在 /var/www/project上查过了

在处理 Windows 主机/Linux 客机时,由于包管理器和共享文件夹的问题,我被要求在全球范围内安装。

我无法在与 /var/www/project相同的目录(或在其下)中安装 webpack (node _ module)

我的 package.json 文件如下所示:

{
"name": "test",
"version": "1.0.0",
"description": "This is a test",
"main": "index.js",
"dependencies": {},
"devDependencies": {
"@symfony/webpack-encore": "^0.15.0"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Alex",
"license": "MIT"
}

我使用这个从 /var/www/project运行安可

/usr/local/bin/encore dev

作为回报,我得到了这个可爱的结果:

Running webpack ...


TypeError: Cannot read property 'match' of undefined


- index.js:125 parse
[lib]/[webpack-encore]/[yargs-parser]/index.js:125:12


- index.js:761 Function.Parser.detailed
[lib]/[webpack-encore]/[yargs-parser]/index.js:761:10


- yargs.js:938 Object.Yargs.self._parseArgs
[lib]/[webpack-encore]/[yargs]/yargs.js:938:27


- yargs.js:927 Object.get [as argv]
[lib]/[webpack-encore]/[yargs]/yargs.js:927:19


- index.js:725 Object.configureRuntimeEnvironment
[lib]/[@symfony]/webpack-encore/index.js:725:54


- index.js:770 Proxy.parameters
[lib]/[@symfony]/webpack-encore/index.js:770:45


- webpack.config.js:3 Object.<anonymous>
/var/www/project/webpack.config.js:3:8


- module.js:573 Module._compile
module.js:573:30


- module.js:584 Object.Module._extensions..js
module.js:584:10


- module.js:507 Module.load
module.js:507:32

我错过了什么?

99745 次浏览

当前不支持在全局范围内安装 webpack-encore。但是错误消息并没有真正说明。

有一个问题需要改进此错误消息: https://github.com/symfony/webpack-encore/issues/36

您应该尝试在本地安装 webpack-encore,这才是真正的问题所在。

在向 configureRuntimeEnvironment方法添加了一个参数之后,它开始为我工作:

Encore.configureRuntimeEnvironment('dev');

不知怎么的,如果你省略了参数,错误就会不断出现。

简单的答案就是跑

rm -rf package-lock.json

尝试删除 package-lock. json 和 node _ module 文件夹,然后运行 npm installyarn install

此消息的另一个原因可能是生成 package-lock.jsonnpm主版本与运行 npm install的版本不匹配。

例如,如果锁文件是使用 npm@5生成的,然后您尝试在 npm@6上执行 npm install,因为我们假设有一个小的 node@8更新,您将看到这个错误。

这里的解决方案就像在其他答案中提到的一样,去除 node_modules 还有 package-lock.jsonnpm installnpm@6再次。或停留在 npm@5锁文件和以后安装。

从 Java 11开始,我就遇到了同样的问题。 尝试运行 yarn install ...代替。 对我有用。

如果您尝试使用锁文件 npm install,您可能实际上正在寻找安装版本锁定依赖项的 npm ci命令。

Npm-ci 文档: https://docs.npmjs.com/cli/ci.html

试试以下方法:

  1. 删除或删除“ node _ module”文件夹和“ package-lock. json”文件。
  2. 在项目目录内的 CMD 或终端中运行 npm install

这个问题应该得到解决。

如果您在使用 NPM 时遇到麻烦,请使用 YARN。 (特别是 Windows 用户)

但你必须首先:

  1. 在切换之前删除 node _ module 文件夹
  2. 使用 Git bash 作为你的默认编辑器,如果你使用-我发现在我的系统上,它只是播放一点点粗糙
  3. 确保您已经按照本指南使用 Github (https://help.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent)在您的机器上设置了 SSH 密钥。不要跳过这一步,否则软件包将无法正确下载

另外,您可能需要考虑使用 Laragon 来拥有一个标准化的开发环境,而不是必须确保您已经安装了 WAMP 和所有类型的好东西。

我一直揪着头发想弄明白这个问题,想知道为什么有时候事情就是不顺利。

我希望这能帮到别人。

您需要从应用程序的根目录中删除 package-lock.json

删除 package-lock. json 文件并通过命令 -npm install 重试安装。

只需使用 cmd 命令删除 package-lock.json:

rm -rf package-lock.json

试试 npm cache clean --force

这将清除 npm缓存,并可能解决您的问题。

尝试在项目目录中重新生成 node-sass

Npm 重建 node-sass

如果您在运行时出现以下错误: Npm 安装

无法读取 null 的“匹配”属性

然后在 Windows 上执行以下删除操作: C: Users/{ User-Name } AppData Roaming npm C: Users/{ User-Name } AppData Roaming npm-cache

然后重新运行: npm install

为我工作享受。 :)

按照以下 台阶s:

npm cache clear --force(执行后,NPM 安装无效,然后继续执行步骤2) 在项目文件夹下删除 package-lock. json,然后运行 NPM install (步骤3无效)

rm -rf node_modules
rm package-lock.json
npm cache clear --force
npm install