[英]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 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.