3

我一直在使用 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.

我真的不知道这是什么,所以我不知道我做错了什么或我的问题是什么。

4

1 回答 1

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"] 导出有关的东西)。

于 2013-11-04T12:22:36.957 回答