' babel-runtime'出错在尝试为Meteor应用程序提供服务时

时间:2016-11-09 03:06:02

标签: node.js meteor babeljs

我最近开始使用Meteor和React。我跟着Meteor网站上的tutorial没有问题。

然后我尝试创建另一个项目,尝试关注另一个tutorial(对于旧版本的Meteor)。在某个地方,Meteor开始抛出晦涩难懂的错误。在尝试重新开始之后,我最终重新安装了Meteor并停止了抱怨。

然而,我再次遇到同样的问题。具体来说,在创建一个全新的项目之后:

meteor create myproject
cd myproject
meteor

服务器抛出以下错误:

[...]
W20161109-03:53:42.862(1)? (STDERR) Error: The babel-runtime npm package could not be found in your node_modules
W20161109-03:53:42.862(1)? (STDERR) directory. Please run the following command to install it:
W20161109-03:53:42.863(1)? (STDERR)
W20161109-03:53:42.863(1)? (STDERR)   meteor npm install --save babel-runtime
[...]

我按照我所说的并尝试安装babel-runtime包。服务器设法成功启动,但它在运行时抛出以下错误:

Uncaught Error: Cannot find module 'babel-runtime/helpers/slicedToArray'
at Function.require.resolve

这仍然是一个新创建的项目,没有安装额外的包或代码更改。我曾尝试在网上寻找解决方案但是,虽然有很多关于已经修复的错误的引用,但我还没有发现任何东西。 StackOverflow上的几个(问题)[Babel - Error: Cannot find module 'babel-runtime/helpers/typeof'建议如下:

  1. 重新安装NPM模块 rm -rf node_modules meteor npm install

  2. 更新NPM meteor npm update -g npm

  3. 我正在使用Meteor 1.4.2,NPM 3.10.9,Ubuntu 16.04.1。

3 个答案:

答案 0 :(得分:7)

我遇到了同样的问题。经过一番挖掘,找到了这个:https://github.com/meteor/meteor/issues/8019

* Installing the `babel-runtime` npm package in your application
  `node_modules` directory is now required for most Babel-transformed code
  to work, as the Meteor `babel-runtime` package no longer attempts to
  provide custom implementations of Babel helper functions.
Consider trying it out by using the latest release candidate (not officially released yet):

meteor update --release 1.4.2.1-rc.1
And then:

meteor npm install --save babel-runtime

升级到1.4.2.1-rc.1(然后在今天上午11/9升级到1.4.2.1)之后,错误得到了解决。

答案 1 :(得分:0)

尝试在项目目录中添加package.json文件,然后运行 流星

  

npm install --save babel-runtime

在命令行中。

答案 2 :(得分:0)

您的项目名称中可能包含空格。您要做的就是创建另一个名称中没有空格的项目。我知道很难从错误消息中找出原因,但这就是事实。

我最近遇到了流星1.11.1的问题,这里的解决方案不起作用。原来我的项目名称(Ghughu Server V2中有空格,而我要做的就是创建另一个没有空格(GhughuServerV2)的

PS 。即使您在项目路径中有空格,但项目名称中却不能有空格,它仍然可以正常工作。同样,仅重命名目录也不起作用。您必须创建一个全新的项目或更改内部的某些配置(如果您在新建的项目中工作,这似乎是不切实际的)。