2016-04-03 2 views
1

Я пытаюсь создать приложение для Node.js, который использует исходный Альпака Forms пакет разомкнут:Получение шаблона было предварительно скомпилировано с более новой версией ошибки Handlebars с моим приложением Node.JS?

http://www.alpacajs.org/

Я использую версию Node: v0.10.25

Когда я бегу Тестовая страница из учебника:

http://www.alpacajs.org/tutorial.html

Используя второй пример страницы найденную в этом уроке:

<html> 
    <head> 
     <link type="text/css" rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" /> 
     <link type="text/css" href="//code.cloudcms.com/alpaca/1.5.17/bootstrap/alpaca.min.css" rel="stylesheet" /> 
     <script type="text/javascript" src="//code.jquery.com/jquery-1.11.1.min.js"></script> 
     <script type="text/javascript" src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script> 
     <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/handlebars.js/3.0.3/handlebars.js"></script> 
     <script type="text/javascript" src="//code.cloudcms.com/alpaca/1.5.17/bootstrap/alpaca.min.js"></script> 
    </head> 
    <body> 
     <div id="form"></div> 
     <script type="text/javascript"> 
      $(document).ready(function() { 
       $("#form").alpaca({ 
        "schema": { 
         "title":"User Feedback", 
         "description":"What do you think about Alpaca?", 
         "type":"object", 
         "properties": { 
          "name": { 
           "type":"string", 
           "title":"Name" 
          }, 
          "feedback": { 
           "type":"string", 
           "title":"Feedback" 
          }, 
          "ranking": { 
           "type":"string", 
           "title":"Ranking", 
           "enum":['excellent','ok','so so'] 
          } 
         } 
        } 
       }); 
      }); 
     </script> 
    </body> 
</html> 

я получаю следующие две ошибок в консоли Chrome Debugger, жалуясь, что шаблоны, которые я использую были собраны с новой версии Рулей, чем текущее время выполнения, а не старшем как большинство сообщается о проблемах на SO. Вот дамп ошибки из консоли Chrome Debugger:

Uncaught Error: Template was precompiled with a newer version of Handlebars than the current runtime. 
Please update your runtime to a newer version (>= 4.0.0). 
    Exception @ handlebars.js:2520 
    checkRevision @ handlebars.js:2693 
    template @ handlebars.js:2709 
    hb.template @ handlebars.js:196 
    (anonymous function) @ alpaca.min.js:1 
    (anonymous function) @ alpaca.min.js:1 
    (anonymous function) @ alpaca.min.js:1 

Uncaught TypeError: $(...).alpaca is not a function 
    (anonymous function) @ (index):14 
    j @ jquery-1.11.1.min.js:2 
    k.fireWith @ jquery-1.11.1.min.js:2 
    m.extend.ready @ jquery-1.11.1.min.js:2 
    J @ jquery-1.11.1.min.js:2 

Я проверил с НПМ и я я используя версию рулей, которая новее, чем 4.0.0:

$ npm ls | grep handlebars 
└─┬ [email protected] 

Так появляется сообщение об ошибке неправильное?

Я нашел эти две связанные SO сообщений:

Template was precompiled with an older version of Handlebars than the current runtime

Uncaught Error: Template was precompiled with an older version of Handlebars

Но я не использую Глоток или ember.js, так что я не знаю, если средства правовой защиты, данные относятся к моей ситуации ,

Вот список пакетов, которые я уже установлены в соответствии с НПМ:

npm ls 
/home/roschler 
├─┬ [email protected] 
│ ├─┬ [email protected] 
│ │ ├─┬ [email protected] 
│ │ │ └── [email protected] 
│ │ └── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├─┬ [email protected] 
│ │ └── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├─┬ [email protected] 
│ │ └── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├─┬ [email protected] 
│ │ └── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├─┬ [email protected] 
│ │ ├── [email protected] 
│ │ └── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├─┬ [email protected] 
│ │ ├── [email protected] 
│ │ ├─┬ [email protected] 
│ │ │ └── [email protected] 
│ │ ├── [email protected] 
│ │ ├── [email protected] 
│ │ └── [email protected] 
│ ├── [email protected] 
│ ├─┬ [email protected] 
│ │ ├── [email protected] 
│ │ └─┬ [email protected] 
│ │ └── [email protected] 
│ ├── [email protected] 
│ └── [email protected] 
└─┬ [email protected] 
    ├── [email protected] 
    ├─┬ [email protected] 
    │ ├── [email protected] 
    │ └── [email protected] 
    ├─┬ [email protected] 
    │ └── [email protected] 
    └─┬ [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    └─┬ [email protected] 
     ├── [email protected] 
     ├─┬ [email protected] 
     │ ├─┬ [email protected] 
     │ │ ├─┬ [email protected] 
     │ │ │ ├─┬ [email protected] 
     │ │ │ │ └── [email protected] 
     │ │ │ ├── [email protected] 
     │ │ │ └── [email protected] 
     │ │ └── [email protected] 
     │ ├─┬ [email protected] 
     │ │ └─┬ [email protected] 
     │ │ ├─┬ [email protected] 
     │ │ │ └── [email protected] 
     │ │ ├── [email protected] 
     │ │ └── [email protected] 
     │ └── [email protected] 
     ├── [email protected] 
     └── [email protected] 

Как я могу исправить эти ошибки?

+0

@Omarjmh Я использую v0.10.25 –

+0

@ Omarjmh Выпадаете? В сообщении об ошибке говорится, что мне нужна более новая версия рулей, а не старше. –

+0

@Omarjmh Просто добавил список пакетов. –

ответ

4

В примере HTML библиотека Handlebars, включенная с помощью тега сценария, должна быть обновлена. Когда это относится к единице времени выполнения, вам необходимо указать обновленную библиотеку JS, в которой вы явно указываете, а не пакет NPM (обычно).

<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/handlebars.js/3.0.3/handlebars.js"></script> 

На самом деле должен включать один вариант с версией 4.0.0+. Например

<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.0/handlebars.js"></script> 
+0

Спасибо! Так оно и было. Он работает сейчас. Кстати, во время (re) -install рулей 4.0.5 с использованием NPM я получил следующие предупреждения. Должен ли я беспокоиться о них? [ПРЕДУПРЕЖДЕНИЕ 1] npm http 304 https://registry.npmjs.org/is-buffer npm WARN engine [email protected]: wanted: {"node": "> = 0.12"} (текущий: {" узел ":" v0.10.25 "," npm ":" 1.3.10 "}) [ПРЕДУПРЕЖДЕНИЕ 2] npm http 304 https://registry.npmjs.org/lazy-cache npm WARN engine [email protected] .3: wanted: {"node": "> = 0.12"} (current: {"node": "v0.10.25", "npm": "1.3.10"}) –

+1

Нет проблем. И вообще эти столкновения не создают проблем в моем опыте. Вы должны быть в порядке, игнорируя их (пока все хорошо работает с ними, конечно). Если вы обнаружите необычную проблему при создании рулей, то, возможно, исследование их будет отправной точкой. Но я никогда не беспокоюсь об этих типах столкновений - получайте их все время. Я склонен использовать версию узла> = 0.12, хотя, как кажется, для очистки таких вещей. – Shakespeare

Смежные вопросы