代码之家  ›  专栏  ›  技术社区  ›  tromgy

Meteor不提供目录中的所有HTML文件

  •  0
  • tromgy  · 技术社区  · 6 年前

    在流星中工作时 todoapp 教程,我在第10步遇到了一个问题, 发布与订阅 .

    问题是这个代码 导入/ui/task.js 不再工作:

    import { Meteor } from 'meteor/meteor'
    import { Template } from 'meteor/templating';
    
    import './task.html'; // <= fails in the browser
    

    目录 导入/用户界面 包含:

    body.html   body.js     task.html   task.js
    

    我可以 import './body.html'; 很好,但不是 import './task.html'; 或者其他HTML文件——例如,我尝试重命名 任务代码 进入之内 闪存 并相应地导入,但仍然失败了。

    尝试在chrome中调试它时,我发现它看到了一组不同的文件:

    Chrome debug snapshot

    看着 this question 我能找到 App.JS ,它有

    Template.body.addContent((function() {
    

    但没有(预期的?)

    Template.task.addContent
    

    所以我的问题是为什么流星建造没有恢复 任务代码 ?

    注:我刚把流星更新到1.8.0.2。这可能是那个版本中的一个新bug吗?

    更新

    我用相同的教程从头开始,并顺利完成了第10步。

    然后我对这两个项目进行了比较。到目前为止,我找不到 然而,造成这个问题的原因 原因可见于

    .meteor/local/build/programs/web.browser/app/app.js版本

    如附件所示: diff of new vs original

    原始(在右侧)缺少从中生成的节 任务代码

    问题仍然是为什么?有没有编译日志可以查看?

    1 回复  |  直到 6 年前
        1
  •  0
  •   tromgy    6 年前

    好吧,@Victor和@Fred Stark在钱上是对的。这是Blaze模板中的语法错误!

    <template name="task">
      <li class="{{#if checked}}checked{{/if}} {{#if private}}private{{/if}}">
        <button class="delete">&times;</button>
    
        <input type="checkbox" checked="{{checked}}" class="toggle-checked" />
    
        {{#if isOwner}}
          <button class="toggle-private">
            {{#if private}}
              Private
            {{#else}} // <= should be {{else}} !
              Public
            {{/if}}
          </button>
        {{/if}}
        <span class="text"><strong>{{username}}</strong> - {{text}}</span>
      </li>
    </template>
    

    在学习教程时,我通常会自己输入,而不是复制粘贴。所以,这里我输入错误,下意识地假设 else 和…一样 if . 错了!

    不过,如果在构建过程中编译器有一些指示,那就更好了。