วาร์ปไปยังโค้ดเมื่อใช้ alias ใน VSCode
สำหรับ frond-end developer คงจะคุ้นชินกันการใช้งาน resolve.alias
โดย transpiler ส่วนใหญ่ได้ใส่เอาไว้ใน config
เพื่อช่วยให้การ import
ไฟล์ตอนเขียนโค้ดสะดวกขึ้น และสามารถอ้างอิงได้ถูกต้องเมื่อตอน bundle ไปใช้งาน
ก่อนที่จะมี alias
มาให้ใช้ก่อนหน้านั้น เราจะอ้างอิงไฟล์เข้าผ่าน relative path
import { formatDate, formatCurrentcy } from '../../utilities'
import { CurrencyComponent } from '../components/currency_component'
ถ้าโปรเจ็คเราไม่ซับซ้อนมาก เราจะเห็นเพียงแค่ ..
บ้าง ../..
บ้าง แต่ถ้าเจอแบบโหดร้ายหน่อย ก็อาจจะมี ../../../..
ก็เป็นได้
แต่ถ้าเราเปลี่ยน alias
ก็จะช่วยลดความซับซ้อนในการอ้างอิงลง และทำให้โค้ดเราดูสะอาดตาอีกด้วย
import { formatDate, formatCurrency } from '@utilities'
import { CurrencyComponent } from '@components/currency_component'
สำหรับการกำหนด alias
ก็ดูจะเหมือนๆ กันไม่ว่าจะใช้ transpiler ตัวใด โดยจะมีหน้าตาคล้ายๆ กับ config ด้านล่าง
module.exports = {
//...
resolve: {
alias: {
@utilities: path.resolve(__dirname, 'src/utilities' ),
@components: path.resolve(__dirname, 'src/components' )
}
}
};
จะสังเกตได้ว่าในการอ้างอิงไฟล์ที่อยู่ภายใต้ src/utilities
จะเรียกได้สั้นๆ ผ่าน @utilities
สำหรับ VSCode
ถ้าเราจะอยากเข้าถึงของโค้ดผ่าน ctrl + click
หรือคลิกขวาและไปยัง Go to Definition
ที่อยู่ในไฟล์ ในกรณีที่เราใช้ relative path
เจ้า VSCode
จะสามารถพาเราวาร์ปไปได้ทันที
แต่ถ้าเราใช้ alias
จะต้องกำหนดค่าเพิ่มเติมเข้าไปในไฟล์ jsconfig.json
หรือ tsconfig.json
// jsconfig.json | tsconfig.json
{
// ...
"compilerOptions": {
// ...
"baseUrl": ".",
"paths": {
"@*": ["./src/*"]
}
}
}
เพียงเท่านี้ VSCode
ก็จะพาคุณวาร์ปไปยังโค้ดได้