1. Cấu trúc thư mục và mô tả dự án
lzwCompress.js/
├── lzwCompress.js
├── package.json
├── README.md
├── LICENSE
└── test/
└── lzwCompress.spec.js
lzwCompress.js: Tệp chính của dự án, chứa mã thực hiện thuật toán nén và giải nén LZW.
package.json: Tệp cấu hình, chứa thông tin metadata và phụ thuộc của dự án.
README.md: Tài liệu mô tả dự án.
LICENSE: Tệp giấy phép của dự án.
test/: Thư mục kiểm thử, chứa các tệp kiểm tra dự án.
2. Giới thiệu về tệp khởi động dự án
Tệp khởi động của dự án là
lzwCompress.js, chứa mã thực hiện thuật toán nén và giải nén LZW. Dưới đây là một đoạn mã ví dụ:
import nenTuLZW from 'lzwcompress';
const duLieu = {
ten: 'Ông Nguyễn Văn A',
tuoi: 42,
ngayBatDau: new Date(),
diaChi: {
duong: '123 Đường MG',
thanhPho: 'Hồ Chí Minh',
tinh: 'Thành Phố Hồ Chí Minh',
quocGia: 'Việt Nam'
}
};
// Nén dữ liệu
const daNen = nenTuLZW.nen(duLieu);
// Giải nén
const goc = nenTuLZW.giaiNen(daNen);
3. Giới thiệu về tệp cấu hình dự án
Tệp cấu hình của dự án là
package.json, chứa thông tin metadata và phụ thuộc của dự án. Dưới đây là một phần nội dung của tệp này:
{
"ten": "nenLZW",
"phienBan": "1.0.0",
"moTa": "Thực thi thuật toán nén/giải nén LZW không mất mát trong JavaScript cho chuỗi/JSON/các đối tượng JS",
"chinh": "lzwCompress.js",
"loaiTapTin": "lzwCompress.d.ts",
"thuMuc": {
"kiemThu": "test"
},
"lenh": {
"baoCao": "nyc bao_cao --bao_cao=van_ban-lcov | coveralls",
"kiemTraDinhDang": "jshint --bao_cao=node_modules/jshint-stylish lzwCompress.js && jshint --bao_cao=node_modules/jshint-stylish spec/lzwCompress.spec.js",
"kiemThu": "nyc --bao_cao=lcov --bao_cao=text --bao_cao=html jasmine"
},
"tapTin": [
"package.json",
"lzwCompress.js",
"README.md",
"LICENSE"
],
"kho": {
"loai": "git",
"url": "floydpink/nenLZW.git"
},
"tuKhoa": [
"lzw",
"nenLZW",
"nen"
],
"tacGia": "floydpink",
"giayPhep": "MIT",
"loi": {
"url": "https://github.com/floydpink/nenLZW/issues"
},
"trangChu": "https://floydpink.github.io/nenLZW/",
"phuThuocPhatTrien": {
"jasmine": "^3.10.0",
"jshint": "^2.13.6",
"jshint-stylish": "^2.2.1",
"nyc": "^15.1.0"
},
"nyc": {
"loaiBo": "**/* spec.js"
}
}