我刚刚使用nvm更新了节点和npm。当我启动节点服务器时,出现此错误。我尝试了不同的解决方案。此类问题已在堆栈溢出中存在,但这些问题都不适合我。所以我尝试了这些事情,但没有用。
1。删除节点模块,并使用npm install安装节点模块。
2.更新了babel-cli版本。
3.降级的节点和nvm。
4.npm我是平衡比赛。
5.npm i -g平衡比赛。
6.npm我保持平衡-保存。
我正在添加我的package.json
{
"name": "******",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "nodemon express-server.js --exec babel-node",
"build": "babel ./ -d dist",
"serve": "node dist/index.js"
},
"author": "",
"license": "ISC",
"dependencies": {
"babel": "^6.23.0",
"bluebird": "^3.5.1",
"cookie-parser": "^1.4.3",
"cors": "^2.8.4",
"ejs": "^2.6.1",
"express": "^4.16.3",
"express-es6-template-engine": "^2.0.3",
"express-session": "^1.15.6",
"handlebars": "^4.0.11",
"helmet": "^3.13.0",
"html": "^1.0.0",
"instamojo-nodejs": "0.0.5",
"jsonwebtoken": "^8.2.2",
"lodash": "^4.17.10",
"moment": "^2.22.2",
"mongoose": "^5.1.3",
"mongoose-unique-validator": "^2.0.1",
"multer": "^1.3.0",
"mysql": "^2.15.0",
"node-fetch": "^2.1.2",
"node-schedule": "^1.3.0",
"node-xlsx": "^0.12.1",
"nodemailer": "^4.6.8",
"passport": "^0.4.0",
"passport-google-oauth20": "^1.0.0",
"passport-local": "^1.0.0",
"request": "^2.88.0",
"request-ip": "^2.0.2",
"sanitize-html": "^1.18.2",
"utf8": "^3.0.0",
"validator": "^10.2.0",
"xlsx2json": "^1.0.0"
},
"devDependencies": {
"babel-cli": "^6.26.0",
"babel-preset-es2015": "^6.24.1",
"babel-preset-stage-2": "^6.24.1",
"nodemon": "^1.17.5"
}
}
在控制台中,它显示如下。 console error
我只浪费了12个小时的时间来解决这个问题。
答案 0 :(得分:1)
我通过在根文件夹中安装npm installbalanced-match解决了此问题。我不知道为什么要使用根文件夹节点模块。在控制台错误中,显然给出了路径,但我没有意识到。如果有人解释为什么采用根节点模块会对我有帮助。
答案 1 :(得分:0)
我没有看到任何节点程序包为平衡匹配。因此,它给出了错误。您还可以在package.json中手动添加软件包,然后运行npm install。
答案 2 :(得分:0)
如果您运行以下命令:npm i balanced-match --save
,则package.json文件中将有一个条目。您的应用程序需要此模块进行生产还是开发工具?这将确定您应将哪个标志传递给install命令。从docs:
-P,-save-prod:软件包将出现在您的依赖项中。除非存在-D或-O,否则这是默认设置。
-D,-save-dev:软件包将出现在您的devDependencies中。
-O,--save-optional:程序包将出现在您的optionalDependencies中。
-不保存:防止保存到依赖项。
使用上述任何选项将依赖项保存到您的 package.json,还有两个附加的可选标志:
-E,--save-exact:保存的依赖项将配置为确切的版本,而不是使用npm的默认semver range运算符。
-B,-save-bundle:保存的依赖项也将添加到bundleDependencies列表中。
上一个答案确实最有可能解决您的问题。您可以为您的用例使用正确的标志再次运行install命令(这将安装它并更新package.json),也可以手动添加它并再次运行npm install
。
安装时,是否有任何错误?如果没有,它应该可以工作。您可以使用npm ls
检查已安装的软件包(传递可选标签(例如'-g'将显示所有全局安装的模块,并且您还可以通过传递深度标签,如--depth=0
来修改输出)。