为什么npm会尝试编译我的代码的旧版本?

时间:2018-12-26 11:40:03

标签: javascript node.js npm

我对npm和node.js完全陌生,所以如果我没有提供正确的细节,请原谅我。我正在为使用npm中的现成框架的网站编写插件。当我愉快地编码后,它运行良好,但是在某个时候它开始尝试编译不再存在的文件。

我使用npm run start来编译我的html文件(其中也包含所有javascript代码)并收到此错误:


ℹ info Compiler will compile ./src/plugin.html
ℹ info Transpiling with babel
 ✖ error Error
  SyntaxError: unknown: Unexpected token (555:3)

    553 | 
    554 | 
  > 555 | });
        |    ^

令我烦恼的是./src/plugin.html中没有这个简单的语法错误(我已经四倍检查了这个事实)。这显然与文件的早期版本有关。

npm是否具有某种高速缓存,会导致它编译文件的旧版本?我注意到,如果删除大部分代码,它将再次编译,但是当我替换代码时,它将再次中断。看来,如果文件与其缓存版本有些相似,它将尝试编译缓存版本,而不是当前版本。

我尝试使用npm --force cache clear清除缓存,但没有效果。

有什么建议吗?

3 个答案:

答案 0 :(得分:0)

对于使用npm编译代码时遇到类似问题的任何人,我发现我的问题确实是一个简单的语法错误。但是,似乎npm对真正的编译错误感到困惑。它指向的是文件中不存在的代码行,我也不知道它是从哪里得到的。

在这种特殊情况下,导致语法错误的原因是缺少};以关闭一组包装的函数。

因此,看来这课不是要对npm理解哪些语法错误引起编译错误的能力给予过多信任。

答案 1 :(得分:0)

您是否尝试使用rebuild或类似的东西或由npm --force cache clear插入的npm cache clean?

答案 2 :(得分:0)

我能够摆脱这种情况的唯一方法是:

  • 重命名文件
  • 重构对它的引用,以便编译
  • npm 启动
  • 停下来
  • 重命名文件并将其重构为原始名称