Bài hôm nay chúng ta sẽ học cách tạo alias trong webpack cùng với cách xử lí đuôi file mở rộng extensions
1. Alias là gì?
Alias là đường dẫn tuyệt đối thay thế cho đường dẫn tương đối khi import các module. Ví dụ như sau:
// thay vì dùng
import Menu from '../../../components/Menu'
// thì dùng
import Menu from '@components/Menu'
Cách bên dưới chính là sử dụng alias. Cách này giúp chúng ta đỡ phải viết đường dẫn dài dòng, phải so sánh vị trí tương đối giữa file đang code với file muốn import. Nói chung người ta hay dùng alias để tạo đường dẫn root cho dự án.
2. resolve.alias
const path = require('path')
module.exports = {
...
resolve: {
alias: {
'@components': path.resolve(__dirname, './src/components')
}
}
};
Lưu ý là khi ta sử dụng alias thì trong lúc viết code có thể bị hai vấn đề sau:
- Eslint không hiểu và báo lỗi.
- Texteditor cụ thể là mình đang sử dụng là VSCode không gợi ý.
2-1. Cách fix Eslint
Ta add thêm thư viện sau đây
npm install eslint-plugin-import eslint-import-resolver-alias --save-dev
Tạo file .eslintrc.js
tại thư mục root của dự án
module.exports = {
settings: {
'import/resolver': {
alias: [
['@components', './src/components'],
]
}
}
}
2-2. Cách fix VSCode
Tạo file jsconfig.json
tại thư mục root của dự án
{
"compilerOptions": {
"baseUrl": "./",
"paths": {
"@components/*": ["src/components/*"]
}
},
"exclude": ["node_modules"]
}
3. resolve.extensions
Giải quyết các đuôi file mở rộng theo thứ tự.
Code file webpack.config.js
module.exports = {
//...
resolve: {
extensions: ['.wasm', '.mjs', '.js', '.json']
}
};
If multiple files share the same name but have different extensions, webpack will resolve the one with the extension listed first in the array and skip the rest.
Nếu nhiều tệp có cùng tên nhưng có các phần mở rộng khác nhau, webpack sẽ giải quyết tệp có phần mở rộng được liệt kê đầu tiên trong mảng và bỏ qua phần còn lại.
Cách sử dụng:
// thay vì dùng
import File from '../path/to/file.js'
// thì dùng
import File from '../path/to/file'
Bài viết đến đây là hết, hi vọng với bài viết này các bạn đã thêm được nhiều kiến thức bổ ích. Hẹn gặp lại các bạn ở bài viết tiếp theo!
- Tham khảo thêm các cấu hình khác cho Resolve tại: https://webpack.js.org/configuration/resolve
- Source code github: https://github.com/kentrung/webpack-tutorial
- Series webpack: https://viblo.asia/s/webpack-tu-a-den-a-cung-kentrung-pmleB8Am5rd
Bài viết liên quan
[CSF-2] Một số thiết lập CSF, LFD
Hôm nay mình sẽ thực hiện một số thiết lập trên CSF Mở file config để sửa đổi một số tính năng dưới /etc/csf/csf.conf Nội dung chính1. Alias là gì?2. resolve.alias2-1. Cách fix Eslint2-2. Cách...
[CSF-1] Tăng bảo mật Server với ConfigServer Firewall (CSF)
Nội dung chính1. Alias là gì?2. resolve.alias2-1. Cách fix Eslint2-2. Cách fix VSCode3. resolve.extensions1. Khái niệm CSF: CSF (ConfigServer & Firewall) là một bộ ứng dụng hoạt động trên Linux như một firewall được phát...
Sử dụng SSH Key với Gitlab và Github
Bài viết này mình sẽ hướng dẫn các bạn tạo ssh key cho Gitlab và Github SSH là gì? Secure Socket Shell là một giao thức mạng dùng để thiết lập kết nối mạng một...
Directory traversal vulnerabilities (phần 4)
Nội dung chính1. Alias là gì?2. resolve.alias2-1. Cách fix Eslint2-2. Cách fix VSCode3. resolve.extensionsV. Phân tích và khai thác các lỗ hổng Directory traversal (tiếp) 5. Bypass lỗ hổng khi trang web sử dụng đường...
Directory traversal vulnerabilities (phần 3)
Nội dung chính1. Alias là gì?2. resolve.alias2-1. Cách fix Eslint2-2. Cách fix VSCode3. resolve.extensionsV. Phân tích và khai thác các lỗ hổng Directory traversal 1. Lỗ hổng xảy ra khi sử dụng các hàm đọc...
Directory traversal vulnerabilities (phần 2)
Nội dung chính1. Alias là gì?2. resolve.alias2-1. Cách fix Eslint2-2. Cách fix VSCode3. resolve.extensionsIII. Vì sao lỗ hổng Directory traversal xuất hiện? Với mỗi ngôn ngữ lập trình khác nhau, điểm xuất hiện các lỗ...