[英]Problems with VS Code JavaScript Intellisense and ES6 Import with Minified & Non-minified Version of JS
下面是我的 Firebase 托管項目文件夾結構:
projectFolder/store/public/scripts/*.min.js
projectFolder/src/*.js
運行terser
后,我所有的projectFolder/src/*.js
都將縮小到projectFolder/store/public/scripts/*.min.js
,如下所示:
編輯:按照terser
的要求,這是我的簡潔腳本的樣子:
call terser src/site-ui-components.js -o store/public/scripts/site-ui-components.min.js -c -m
echo site-ui-components.min.js: Done.
call terser src/login.js -o store/public/scripts/login.min.js -c -m
echo login.min.js: Done.
call terser src/register.js -o store/public/scripts/register.min.js -c -m
echo register.min.js: Done.
call terser src/profile.js -o store/public/scripts/profile.min.js -c -m
echo profile.min.js: Done.
在我的 ES6 導入中,我執行以下操作:
import { something1, something2 } from "/scripts/something.min.js";
這在運行時工作正常,但在開發期間我丟失了something1
和something2
的所有 vs 代碼智能感知。 如果我通過執行以下操作啟用智能感知,在運行時,我的代碼會中斷,因為很明顯,它找不到"./something.js"
:
import { something1, something2 } from "./something.js"; // Error, something.min.js not found
我不想通過將*.min.js
添加到我所有的非縮小 js來做一些愚蠢的事情,只是為了讓它們都能工作。 其次,我盡量避免使用動態導入,通過編寫額外的代碼來適應不同的環境。
所以我的問題是:
*.js
?任何建議將不勝感激。 謝謝!
經過大量的搜索和閱讀,我終於設法在 VS Code 中使用baseUrl
和jsconfig.json
的paths
來解決我的問題:
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"/scripts/*": ["./store/public/scripts/*"]
}
}
}
說明:
這里的目標是使以下導入對/src/*.js
和/store/public/scripts/*.min.js
都有效,而不會丟失智能感知:
import { something1, something2 } from "/scripts/something.min.js";
對於我的情況,我的src
中的 JS 是否引用/scripts/*.min.js
並不重要,因為*.min.js
總是從src
的最新 object 接口獲取。 每當我更改src
中的任何 JS 文件時,我只是運行我的terser
腳本以使新的更改被智能感知反映出來,所以沒什么大不了的。 因此,為了讓/src/*.js
和/scripts/*.min.js
從相同的源導入而不會在運行時破壞代碼,我可以配置我的jsconfig.json
來實現這個目標:
"baseUrl": "."
"."
是我的projectFolder
所在的jsconfig.json
,即projectFolder/jsconfig.json
。
"paths": {
"/scripts/*": ["./store/public/scripts/*"]
}
"/scripts/*"
是我用來引用導出模塊文件的字符串模式或導入路徑。 因此,當我import { something1 } from "/scripts/something.min.js"
,VS Code 始終引用"./store/public/scripts/*"
作為智能感知。
我希望我的解釋對每個人都清楚。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.