未捕获的ReferenceError用于在同一文件中定义的常量

时间:2017-08-10 07:02:33

标签: javascript node.js

我正在使用remark-math从Markdown渲染数学方程式。这之前一直在顺利进行,但是在我重构了一些看似无关的代码后,我现在得到以下异常:

Uncaught ReferenceError: INLINE_MATH_DOUBLE is not defined
    at Of.inlineTokenizer (inline.js:12)
    at Of.tokenize [as tokenizeInline] (tokenizer.js:111)
    at Of.atxHeading (heading-atx.js:148)
    at Of.tokenize [as tokenizeBlock] (tokenizer.js:111)
    at Of.parse (parse.js:41)
    at Function.parse (index.js:275)
    at pipelineParse (index.js:22)
    at wrapped (index.js:93)
    at next (index.js:56)
    at Object.run (index.js:30)

./node_modules/remark-math/inline.js的相关代码如下所示:

const ESCAPED_INLINE_MATH = /^\\\$/
const INLINE_MATH = /^\$((?:\\\$|[^$])+)\$/
const INLINE_MATH_DOUBLE = /^\$\$((?:\\\$|[^$])+)\$\$/  // << defined here?

module.exports = function inlinePlugin (opts) {
  function inlineTokenizer (eat, value, silent) {
    let isDouble = true
    let match = INLINE_MATH_DOUBLE.exec(value) // << line 12, error here
    // ...remaining code

该常量似乎在范围内定义!

我正在使用webpack和chentsulin/electron-react-boilerplate模板构建。关于为什么会突然发生这种异常的任何暗示? (我已尝试完全重新安装node_modules。)

2 个答案:

答案 0 :(得分:0)

可能会在 webpack 构建中出现一些问题。

如果错误仍然存​​在,并且您想要避免它,则可以使用此

GLOBAL.INLINE_MATH_DOUBLE = /^\$\$((?:\\\$|[^$])+)\$\$/

答案 1 :(得分:0)

我使用yarn而不是npm重新安装了依赖项,问题就消失了。