Jade:ReferenceError:未定义TokContext

时间:2015-09-01 12:59:01

标签: javascript node.js pug

我创建了app.js最简单的节点服务器。为此,我安装了下一个库: npm install node-jsx react express jade

现在,当我使用node app.js启动时,会出现下一个错误:

c:\Programming\React_Examples\server rendering\node_modules\jade\node_modules\constantinople\node_modules\acorn\dist\acorn.js:2275
  _classCallCheck(this, TokContext);
                        ^
ReferenceError: TokContext is not defined
    at new TokContext (c:\Programming\React_Examples\server rendering\node_modules\jade\node_modules\constantinople\node_modules\acorn\dist\acorn.js:2275:25)
    at Object../state (c:\Programming\React_Examples\server rendering\node_modules\jade\node_modules\constantinople\node_modules\acorn\dist\acorn.js:2285:11)
    at s (c:\Programming\React_Examples\server rendering\node_modules\jade\node_modules\constantinople\node_modules\acorn\dist\acorn.js:1:681)
    at c:\Programming\React_Examples\server rendering\node_modules\jade\node_modules\constantinople\node_modules\acorn\dist\acorn.js:1:732
    at Object../expression (c:\Programming\React_Examples\server rendering\node_modules\jade\node_modules\constantinople\node_modules\acorn\dist\acorn.js:907:21)
    at s (c:\Programming\React_Examples\server rendering\node_modules\jade\node_modules\constantinople\node_modules\acorn\dist\acorn.js:1:681)
    at e (c:\Programming\React_Examples\server rendering\node_modules\jade\node_modules\constantinople\node_modules\acorn\dist\acorn.js:1:852)
    at c:\Programming\React_Examples\server rendering\node_modules\jade\node_modules\constantinople\node_modules\acorn\dist\acorn.js:1:870
    at a (c:\Programming\React_Examples\server rendering\node_modules\jade\node_modules\constantinople\node_modules\acorn\dist\acorn.js:1:150)
    at Object.<anonymous> (c:\Programming\React_Examples\server rendering\node_modules\jade\node_modules\constantinople\node_modules\acorn\dist\acorn.js:1:383)

1 个答案:

答案 0 :(得分:1)

问题是node-jsx和acorn模块之间存在冲突(后者由Jade使用)。

如果您可以将所有JSX保存在扩展名不是.js的文件中,例如.jsx,您可以替换

require('node-jsx').install();

致电:

require('node-jsx').install({extension: '.jsx'});

另一种选择可能是与Jade不同的模板引擎。

或者将JSX包含限制在主要模块之外的模块(不确定这个模块,但必要时值得尝试)。

请参阅https://github.com/pugjs/jade/issues/1925