我一直在使用handlebars.js客户端,我想开始使用预编译模板。我按照我在网上找到的一般说明,包括在Node.js上安装它:
npm install handlebars -g
接下来,我转到我的Node.js目录并尝试编译一个简单的模板:
handlebars test.handlebars -f test.js
我收到错误(命令提示,请注意,我很抱歉):
C:\Users\Administrator\AppData\Roaming\npm\node_modules\handlebars\lib\handlebars.js:1
(function (exports, require, module, __filename, __dirname) { import Handlebar
^^^^^^
SyntaxError: Unexpected reserved word
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (C:\Users\Administrator\AppData\Roaming\npm\node_modules\handlebars\bin\handlebars:105:18)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
我转到这个错误的handlebars.js文件,确定代码肯定不像javascript:
import Handlebars from "./handlebars.runtime";
// Compiler imports
module AST from "./handlebars/compiler/ast";
import { parser as Parser, parse } from "./handlebars/compiler/base";
// ... etc.
我真的不知道这是什么,所以我不知道我做错了什么或我的问题是什么。
答案 0 :(得分:3)
看起来lib文件夹包含未处理的类ES6模块。所以可能它不是用es6-module-transpiler处理的。我是公开的问题https://github.com/wycats/handlebars.js/issues/642也存在类似问题https://github.com/wycats/handlebars.js/issues/643。
我通过安装es6-module-transpiler手动处理文件解决了这个问题,并快速修复了保留错误(某些事情与[“default”]导出)。