我的Meteor应用程序在包含<;头>;

我的Meteor应用程序在包含<;头>;,meteor,Meteor,从Meteor 0.8.3升级到Meteor 1.0(并迁移所有必要的软件包)后,我的应用程序将不再正常启动。它只是在启动后不久崩溃,出现以下错误: I20141110-23:58:20.541(1)? Exception in queued task: Error: ENOENT, open '../web.browser/head.html' I20141110-23:58:20.541(1)? at Object.Future.wait (/home/leo/.meteor/pac

从Meteor 0.8.3升级到Meteor 1.0(并迁移所有必要的软件包)后,我的应用程序将不再正常启动。它只是在启动后不久崩溃,出现以下错误:

I20141110-23:58:20.541(1)? Exception in queued task: Error: ENOENT, open '../web.browser/head.html' I20141110-23:58:20.541(1)? at Object.Future.wait (/home/leo/.meteor/packages/meteor-tool/.1.0.35.ftql1v++os.linux.x86_64+web.browser+web.cordova/meteor-tool-os.linux.x86_64/dev_bundle/lib/node_modules/fibers/future.js:326:15) I20141110-23:58:20.541(1)? at _.extend.runTask (packages/meteor/fiber_helpers.js:79) I20141110-23:58:20.542(1)? at Object.WebAppInternals.generateBoilerplate (packages/webapp/webapp_server.js:588) I20141110-23:58:20.542(1)? at updateVersions (packages/autoupdate/autoupdate_server.js:89) I20141110-23:58:20.542(1)? at Object.task (packages/autoupdate/autoupdate_server.js:183) I20141110-23:58:20.542(1)? at _.extend._run (packages/meteor/fiber_helpers.js:145) I20141110-23:58:20.542(1)? at packages/meteor/fiber_helpers.js:123 I20141110-23:58:20.543(1)? - - - - - I20141110-23:58:20.543(1)? at Object.Future.wait (/home/leo/.meteor/packages/meteor-tool/.1.0.35.ftql1v++os.linux.x86_64+web.browser+web.cordova/meteor-tool-os.linux.x86_64/dev_bundle/lib/node_modules/fibers/future.js:326:15) I20141110-23:58:20.543(1)? at packages/meteor/helpers.js:118 I20141110-23:58:20.543(1)? at readUtf8FileSync (packages/boilerplate-generator/boilerplate-generator.js:6) I20141110-23:58:20.543(1)? at packages/boilerplate-generator/boilerplate-generator.js:81 I20141110-23:58:20.544(1)? at Array.forEach (native) I20141110-23:58:20.544(1)? at Function._.each._.forEach (packages/underscore/underscore.js:105) I20141110-23:58:20.544(1)? at Boilerplate._generateBoilerplateFromManifestAndSource (packages/boilerplate-generator/boilerplate-generator.js:63) I20141110-23:58:20.545(1)? at new Boilerplate (packages/boilerplate-generator/boilerplate-generator.js:16) I20141110-23:58:20.545(1)? at Object.WebAppInternals.generateBoilerplateInstance (packages/webapp/webapp_server.js:329) I20141110-23:58:20.545(1)? at packages/webapp/webapp_server.js:591 I20141110-23:58:20.546(1)? - - - - - 它与
client/main.html
中的
相同

如果删除
元素或使其为空,
.meteor/local/build/programs/web.browser/head.html
将消失,此崩溃也将消失。但是,我确实需要
,因为它包含一些基本的标记和样式表

此问题肯定与
的内容无关,因为即使是
也会导致崩溃。只要有非空的
元素,它就会崩溃。也就是说,只要有一个
.meteor/local/build/programs/web.browser/head.html
文件,meteor讽刺地说该文件丢失了

head.html
的权限似乎是正确的:-r--r--r--,它允许每个人读取文件。每次Meteor“构建应用程序”时,文件创建日期也会更改

到目前为止,我知道这个问题发生在Meteor 0.9或更高版本上。在迁移之前,该应用程序在0.8.3下运行良好

我还尝试了一个测试项目(
meteor create test
),并且让一个
可以工作。即使在不同的HTML客户机文件中有多个
也可以工作,这让我相信迁移我的项目会导致一些奇怪的问题

这不能在另一个测试项目中使用与已损坏项目相同的包进行复制


有什么想法吗?我试过调试Meteor的代码,但调试Meteor的代码对我来说太复杂了。

经过几个小时的调试,我找到了罪魁祸首

我有一个服务器端脚本(在server/)使用
shelljs
cd
放入另一个目录

虽然这在Meteor 0.8下运行良好,但Meteor 0.9中的更改似乎使
cd
ing无法进入其他目录,因为它会破坏Meteor的内部组件

虽然它不完全是一个流星bug,但它破坏了兼容性,并且在发行说明中没有提到。。。但是,我想在大多数项目中都找不到使用
cd

这也解释了为什么Meteor只有在出现
时才会抱怨。当没有
时,它不会尝试读取文件,因此一切正常。但是,当有一个目录时,它将尝试读取该文件并失败,因为当前目录与Meteor期望的目录不同


因此,如果您在Meteor上遇到奇怪的问题,并且正在使用
shelljs
,请确保您没有使用
cd

看起来有点像Meteor bug。你能用最小的回购来复制吗?此外,它是否只有在所有客户端文件中有多个
head
节时才会崩溃?该文件具有哪些权限?@solarc我已经用更多信息更新了帖子。
<meta charset="utf-8">
...
<link rel="stylesheet" href="apps.css">