我使用npm安装了webpack(Symfony encore),如下所示:
sudo npm install -g @symfony/webpack-encore --save-dev
我是从/var/www/project
在处理Windows主机/ Linux来宾时,由于包管理器和共享文件夹的问题,我被要求全局安装。
我无法将webpack(node_modules)安装在与/var/www/project
所以我的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
我错过了什么?
答案 0 :(得分:13)
简单的答案只需运行rm -rf package-lock.json
答案 1 :(得分:4)
尝试删除package-lock.json和node_modules文件夹,然后运行npm install
或yarn install
答案 2 :(得分:2)
请尝试以下操作:
npm install
。该问题应该得到解决。
答案 3 :(得分:2)
您需要从应用程序的根目录中删除package-lock.json
。之后,您可以更新新软件包。
答案 4 :(得分:2)
使用此cmd命令只需删除package-lock.json
:
rm -rf package-lock.json
答案 5 :(得分:2)
试试“npm cache clean --force”
这将清除 nmp 缓存并可能解决您的问题
答案 6 :(得分:1)
此消息的另一个原因可能是生成npm
的{{1}}主要版本与运行package-lock.json
的版本之间不匹配。
例如,如果锁定文件是使用npm install
生成的,后来又由于对npm@5
进行较小的更新而尝试对npm install
进行npm@6
,则会看到此错误。
这里的解决方案就像其他答案中提到的那样,再次删除了node@8
上的node_modules
和 package-lock.json
和npm install
。或留在npm@6
上获取锁文件并稍后安装。
答案 7 :(得分:1)
如果您在使用NPM时遇到问题,请使用YARN。 (尤其是Windows用户)
但是您必须先:
此外,您可能想考虑使用Laragon来拥有标准化的开发环境,而不是必须确保自己安装了WAMP和所有好东西。
我想解决这个问题已经花了很多年了,想知道为什么有时候事情不起作用。
我希望这可以帮助某个人。
答案 8 :(得分:0)
目前不支持全局安装webpack-encore
。但是,错误消息并不是真正的解释。
有一个问题已经打开,可以改进此错误消息:https://github.com/symfony/webpack-encore/issues/36
您应该尝试在本地安装webpack-encore
,这是真正的问题。
答案 9 :(得分:0)
在configureRuntimeEnvironment
方法中添加一个参数后,它开始为我工作:
Encore.configureRuntimeEnvironment('dev');
如果你省略了参数,错误就会一直显示出来。
答案 10 :(得分:0)
自Java 11起,我也遇到了同样的问题。
尝试改为运行CustomerAddress
。
它对我有用。
答案 11 :(得分:0)
如果您尝试使用锁定文件npm install
,则实际上可能正在寻找安装版本锁定依赖项的npm ci
命令。
npm-ci文档:https://docs.npmjs.com/cli/ci.html
答案 12 :(得分:0)
删除package-lock.json文件,然后尝试通过命令-npm install进行安装。