簡體   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