【发布时间】:2018-04-11 16:56:01
【问题描述】:
我正在接管一个使用 Meteor 版本 1.4.2.3 开发的项目。在使用 meteor run 运行项目时,我得到以下异常:
W20180411-12:35:00.369(-4)? (STDERR) packages\modules.js:583
W20180411-12:35:00.603(-4)? (STDERR) const {LEVEL, MESSAGE} = require('triple-beam');
W20180411-12:35:00.603(-4)? (STDERR) ^
W20180411-12:35:00.603(-4)? (STDERR)
W20180411-12:35:00.604(-4)? (STDERR) SyntaxError: Unexpected token {
W20180411-12:35:00.604(-4)? (STDERR) at Object.exports.runInThisContext (vm.js:53:16)
W20180411-12:35:00.604(-4)? (STDERR) at C:\Users\roberth\Programming Projects\xxx\.meteor\local\build\programs\server\boot.js:289:30
W20180411-12:35:00.605(-4)? (STDERR) at Array.forEach (native)
W20180411-12:35:00.605(-4)? (STDERR) at Function._.each._.forEach (C:\Users\roberth\AppData\Local\.meteor\packages\meteor-tool\1.4.2_3\mt-os.windows.x86_32\dev_bundle\server-lib\node_modules\underscore\underscore.js:79:11)
W20180411-12:35:00.605(-4)? (STDERR) at C:\Users\roberth\Programming Projects\xxx\.meteor\local\build\programs\server\boot.js:128:5
W20180411-12:35:00.605(-4)? (STDERR) at C:\Users\roberth\Programming Projects\xxx\.meteor\local\build\programs\server\boot.js:344:5
W20180411-12:35:00.606(-4)? (STDERR) at Function.run (C:\Users\roberth\Programming Projects\xxx\.meteor\local\build\programs\server\profile.js:480:12)
W20180411-12:35:00.606(-4)? (STDERR) at C:\Users\roberth\Programming Projects\xxx\.meteor\local\build\programs\server\boot.js:343:11
=> Exited with code: 1
我尝试了以下方法:
- 窗口:
- 卸载nodejs v6并安装v8
- 卸载流星并使用 choco 重新安装
- Linux:
- 使用包管理器安装节点 (v6.12.3)
- 使用 sh 安装流星
同样的错误发生在 Windows 和 Linux 上,老实说,我不知道是什么导致了这个问题。
我在这里缺少什么?
编辑
package.json
{
"name": "meteor",
"private": true,
"scripts": {
"start": "meteor run"
},
"dependencies": {
"babel": "^6.23.0",
"babel-cli": "^6.26.0",
"babel-runtime": "6.18.0",
"bson-ext": "^1.0.1",
"meteor-node-stubs": "~0.2.0",
"moment": "^2.17.1",
"mongoose": "~4.4",
"triple-beam": "^1.1.0",
"winston": "2.x",
"winston-mongodb": "latest"
}
}
更新
由于我不知道meteor 使用的是Node 的内置版本,所以我卸载了node、meteor 并删除了repo。然后我通过 choco 安装了流星并克隆了存储库。在运行meteor npm install 和meteor run 之后,我收到了与上述意外令牌完全相同的问题。
更新 2
我已经能够确定 node_modules 目录有问题。如果我将 node_modules 目录从工作机器复制到我的开发箱,它会按预期工作。
新问题:如何确定哪个包有问题?我很犹豫是否将 node_modules 目录提交到 git 作为修复程序,并希望深入了解这一点。
【问题讨论】:
-
只需使用
triple-beamnpm 包创建一个新项目并复制您的错误行但没有错误。你在meteor run之前运行过meteor npm install吗? -
顺便说一下,您不需要安装节点,因为 Meteor 内部附带了一个节点版本。
-
@Jankapunkt 我不知道它是随节点一起提供的——谢谢你的花絮。我之前运行过 npm install 。我还安装了三光束,也没有解决它。在我看来,这个问题与语法有关,几乎就像流星无法识别 ES6 语法
-
这似乎是一个通天问题。您可以添加您的 package.json 依赖项的摘录吗?
-
你能在工作机器上运行
npm list吗?然后比较两个..应该显示安装的版本差异..我怀疑这会缩小一点。
标签: javascript node.js meteor