[英]Getting template was precompiled with a newer version of Handlebars error with my Node.JS app?
我正在嘗試創建一個使用開源 Alpaca Forms 包的 Node.JS 應用程序:
我正在使用節點版本: 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 調試器控制台中收到以下兩個錯誤,抱怨我使用的模板是用比當前運行時更新的 Handlebars 版本編譯的,而不是像 SO 上報告的大多數問題指定的那樣舊。 這是來自 Chrome 調試器控制台的錯誤轉儲:
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
我NPM檢查,我使用的是版本車把比4.0.0更新:
$ npm ls | grep handlebars
└─┬ handlebars@4.0.5
所以看起來錯誤信息是錯誤的?
我找到了這兩個相關的 SO 帖子:
模板是使用比當前運行時舊版本的 Handlebars 預編譯的
未捕獲的錯誤:模板是用舊版本的 Handlebars 預編譯的
但我沒有使用 Gulp 或 Ember.JS,所以我不知道給出的補救措施是否適用於我的情況。
這是我根據 NPM 安裝的軟件包列表:
npm ls
/home/roschler
├─┬ express@4.13.4
│ ├─┬ accepts@1.2.13
│ │ ├─┬ mime-types@2.1.10
│ │ │ └── mime-db@1.22.0
│ │ └── negotiator@0.5.3
│ ├── array-flatten@1.1.1
│ ├── content-disposition@0.5.1
│ ├── content-type@1.0.1
│ ├── cookie@0.1.5
│ ├── cookie-signature@1.0.6
│ ├─┬ debug@2.2.0
│ │ └── ms@0.7.1
│ ├── depd@1.1.0
│ ├── escape-html@1.0.3
│ ├── etag@1.7.0
│ ├─┬ finalhandler@0.4.1
│ │ └── unpipe@1.0.0
│ ├── fresh@0.3.0
│ ├── merge-descriptors@1.0.1
│ ├── methods@1.1.2
│ ├─┬ on-finished@2.3.0
│ │ └── ee-first@1.1.1
│ ├── parseurl@1.3.1
│ ├── path-to-regexp@0.1.7
│ ├─┬ proxy-addr@1.0.10
│ │ ├── forwarded@0.1.0
│ │ └── ipaddr.js@1.0.5
│ ├── qs@4.0.0
│ ├── range-parser@1.0.3
│ ├─┬ send@0.13.1
│ │ ├── destroy@1.0.4
│ │ ├─┬ http-errors@1.3.1
│ │ │ └── inherits@2.0.1
│ │ ├── mime@1.3.4
│ │ ├── ms@0.7.1
│ │ └── statuses@1.2.1
│ ├── serve-static@1.10.2
│ ├─┬ type-is@1.6.12
│ │ ├── media-typer@0.3.0
│ │ └─┬ mime-types@2.1.10
│ │ └── mime-db@1.22.0
│ ├── utils-merge@1.0.0
│ └── vary@1.0.1
└─┬ handlebars@4.0.5
├── async@1.5.2
├─┬ optimist@0.6.1
│ ├── minimist@0.0.10
│ └── wordwrap@0.0.3
├─┬ source-map@0.4.4
│ └── amdefine@1.0.0
└─┬ uglify-js@2.6.2
├── async@0.2.10
├── source-map@0.5.3
├── uglify-to-browserify@1.0.2
└─┬ yargs@3.10.0
├── camelcase@1.2.1
├─┬ cliui@2.1.0
│ ├─┬ center-align@0.1.3
│ │ ├─┬ align-text@0.1.4
│ │ │ ├─┬ kind-of@3.0.2
│ │ │ │ └── is-buffer@1.1.3
│ │ │ ├── longest@1.0.1
│ │ │ └── repeat-string@1.5.4
│ │ └── lazy-cache@1.0.3
│ ├─┬ right-align@0.1.3
│ │ └─┬ align-text@0.1.4
│ │ ├─┬ kind-of@3.0.2
│ │ │ └── is-buffer@1.1.3
│ │ ├── longest@1.0.1
│ │ └── repeat-string@1.5.4
│ └── wordwrap@0.0.2
├── decamelize@1.2.0
└── window-size@0.1.0
我該如何修復這些錯誤?
在示例 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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.