繁体   English   中英

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

[英]Why does npm try to compile a old version of my code?

我对 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/ ./src/plugin.html中不存在这个简单的语法错误(我已经四次检查了这个事实)。 这显然与该文件的早期版本有关。

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

我试过用npm --force cache clear缓存,但没有效果。

有什么建议么?

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

在这种特殊情况下,罪魁祸首的语法错误是缺少}; 关闭一组包装的函数。

因此,这里的教训似乎是不要太相信 npm 理解哪些语法错误会引发编译错误的能力。

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

  • 重命名文件
  • 重构对它的引用,所以它会编译
  • npm 开始
  • 停下来
  • 重命名并将文件重构回其原始名称

您是否尝试使用重新构建或类似的东西或 npm cache clean insted of npm --force cache clear?

取消 git rebase 后我遇到了同样的问题。 我可以解决此问题的唯一方法是更改​​这些文件中的某些内容并在之后恢复更改。

我最近遇到了这个问题。 如果您在项目中使用 typescript,则可能在 tsconfig.json 文件中使用了错误的配置,可能已将 typescript 文件构建到其相应的 js 文件中,并且这些 js 文件是每次运行项目时运行的文件。

对我来说清楚地捕捉我的浏览器它有效

通过按Ctrl+s修复!

对我来说,默认情况下vsc不会保存像PyCharm这样的自动更改的代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM