Mục lục

Không có mục lục
Tham gia kênh Telegram của CloudFly để nhận thêm ưu đãi và không bỏ lỡ bất kỳ khuyến mãi nào từ CloudFly

Cách Thiết Lập Dự Án Node Với Typescript

Ngày đăng: 17 tháng 7 năm 2025

Javascript

description image

Yêu cầu trước

Trước khi bắt đầu hướng dẫn này, bạn cần cài đặt Node.js trên hệ thống của mình. Bạn có thể làm điều này bằng cách theo hướng dẫn Cách Cài Đặt Node.js và Tạo Môi Trường Phát Triển Cục Bộ phù hợp với hệ điều hành.

Lưu ý: Các bước này áp dụng cho các phiên bản Ubuntu mới nhất: Ubuntu 24.04, Ubuntu 22.04 và Ubuntu 20.04. Nếu bạn đang dùng phiên bản Ubuntu <= 18.04, khuyến nghị nâng cấp lên phiên bản mới hơn vì Ubuntu không còn hỗ trợ các phiên bản cũ. Bộ sưu tập hướng dẫn này sẽ giúp bạn nâng cấp phiên bản Ubuntu.

Bước 1 — Khởi tạo Dự án

Để bắt đầu, tạo một thư mục mới tên là node_project và truy cập vào thư mục đó:

mkdir node_project
cd node_project

Sau đó, khởi tạo dự án npm:

npm init -y

Cờ -y cho phép npm init tự động chấp nhận mặc định. Bạn có thể chỉnh sửa thông tin này sau trong file package.json.

Bước 2 — Cấu hình Trình Biên Dịch TypeScript

Bây giờ dự án npm đã được khởi tạo, bạn sẵn sàng cài đặt và cấu hình TypeScript.

Chạy lệnh sau trong thư mục dự án để cài đặt TypeScript:

npm install --save-dev typescript

Kết quả:

added 1 package, and audited 2 packages in 1s

found 0 vulnerabilities

TypeScript sử dụng file tsconfig.json để cấu hình các tùy chọn trình biên dịch cho dự án. Tạo file tsconfig.json trong thư mục gốc dự án:

nano tsconfig.json

Sau đó dán đoạn JSON sau vào:

{
  "compilerOptions": {
    "module": "commonjs",
    "esModuleInterop": true,
    "target": "es6",
    "moduleResolution": "node",
    "sourceMap": true,
    "outDir": "dist"
  },
  "lib": ["es2015"]
}

Giải thích một số key trong JSON trên:

  • module: Chỉ định phương pháp tạo module. Node sử dụng commonjs.
  • target: Chỉ định cấp độ ngôn ngữ đầu ra.
  • moduleResolution: Giúp trình biên dịch hiểu được các import. Giá trị node mô phỏng cơ chế phân giải module của Node.
  • outDir: Nơi lưu các file .js sau khi biên dịch. Hướng dẫn này xuất ra thư mục dist.

Để tìm hiểu thêm về các tùy chọn, tài liệu chính thức TypeScript documentation giải thích chi tiết.

Bước 3 — Tạo Server Express TypeScript Tối Giản

Tiếp theo, cài đặt framework Express và tạo server đơn giản:

npm install --save [email protected]
npm install --save-dev @types/[email protected]

Lệnh thứ hai cài đặt các type cho Express hỗ trợ TypeScript. Types trong TypeScript là các file, thường có đuôi .d.ts, cung cấp thông tin kiểu cho API, ở đây là Express.

Gói này cần thiết vì TypeScript và Express là các gói riêng biệt. Nếu không có @types/express, TypeScript không thể biết kiểu của các class trong Express.

Tạo thư mục src trong thư mục gốc dự án:

mkdir src

Tạo file TypeScript app.ts trong đó:

nano src/app.ts

Mở app.ts bằng trình soạn thảo văn bản bạn chọn và dán đoạn code sau:

import express from 'express';
const app = express();
const port = 3000;

app.get('/', (req, res) => {
  res.send('Hello World!');
});

app.listen(port, () => {
  return console.log(`Express is listening at http://localhost:${port}`);
});

Đoạn mã trên tạo một server Node lắng nghe cổng 3000 cho các yêu cầu. Để chạy ứng dụng, bạn cần biên dịch sang JavaScript:

npx tsc

Lệnh này sử dụng file cấu hình đã tạo để biên dịch code và lưu kết quả. Ở đây, mã JavaScript được xuất vào thư mục dist.

Chạy file JavaScript:

node dist/app.js

Nếu chạy thành công, bạn sẽ thấy thông báo:

Express is listening at http://localhost:3000

Bây giờ, truy cập http://localhost:3000 trên trình duyệt, bạn sẽ thấy thông báo:

Hello World!

Mở file dist/app.js sẽ thấy phiên bản JavaScript được biên dịch từ TypeScript.

Bạn đã thiết lập dự án Node sử dụng TypeScript thành công. Tiếp theo, bạn sẽ cấu hình eslint để kiểm tra lỗi code TypeScript.

Bước 4 — Cấu hình Kiểm tra Code Typescript với eslint

Bây giờ bạn có thể cấu hình eslint cho dự án. Đầu tiên, cài đặt eslint:

npm install --save-dev eslint

Chạy lệnh khởi tạo eslint để thiết lập tương tác:

npm init @eslint/config@latest

Trả lời các câu hỏi sau cho dự án:

  • Bạn muốn sử dụng ESLint như thế nào?: Kiểm tra cú pháp và tìm lỗi
  • Dự án sử dụng loại module nào?: JavaScript modules (import/export)
  • Dự án sử dụng framework nào?: Không
  • Dự án có sử dụng TypeScript không?: Có
  • Mã của bạn chạy ở đâu?: Node
  • Muốn cấu hình dưới định dạng nào?: JavaScript

Nhấn Yes để cài thêm thư viện eslint phụ trợ. Kết quả là file cấu hình sau sẽ được tạo:

module.exports = {
  env: {
    es2021: true,
    node: true,
  },
  extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended'],
  parser: '@typescript-eslint/parser',
  parserOptions: {
    ecmaVersion: 13,
    sourceType: 'module',
  },
  plugins: ['@typescript-eslint'],
  rules: {},
}

Chạy linter kiểm tra các file có đuôi .ts:

npx eslint . --ext .ts

Bạn đã thiết lập eslint để kiểm tra cú pháp TypeScript. Tiếp theo, bạn sẽ cập nhật cấu hình npm để thêm các script tiện lợi cho việc kiểm tra và chạy dự án.

Bước 5 — Cập nhật File package.json

Bạn có thể định nghĩa các tác vụ thường chạy trong npm scripts. Các script này định nghĩa trong package.json và chạy bằng lệnh npm run tên_script.

Trong bước này, bạn thêm script start để biên dịch TypeScript và chạy ứng dụng JavaScript kết quả.

Bạn cũng thêm script lint để chạy eslint kiểm tra các file TypeScript.

Mở package.json và cập nhật như sau:

{
  "name": "node_project",
  "version": "1.0.0",
  "description": "",
  "main": "dist/app.js",
  "scripts": {
    "start": "tsc && node dist/app.js",
    "lint": "eslint . --ext .ts",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@types/express": "^4.17.1",
    "@typescript-eslint/eslint-plugin": "^5.4.0",
    "@typescript-eslint/parser": "^5.4.0",
    "eslint": "^8.3.0",
    "typescript": "^4.5.2"
  },
  "dependencies": {
    "express": "^4.17.1"
  }
}

Trong đoạn trên, bạn đã cập nhật đường dẫn main đến file biên dịch và thêm các lệnh startlint.

Lệnh start đầu tiên chạy tsc để biên dịch, sau đó chạy node để khởi động ứng dụng.

Lệnh lint giống như bước trước, không cần tiền tố npx.

Kết luận

Trong hướng dẫn này, bạn đã tìm hiểu lý do vì sao TypeScript hữu ích trong viết mã JavaScript đáng tin cậy. Bạn cũng đã biết một số lợi ích khi làm việc với TypeScript.

Cuối cùng, bạn đã thiết lập dự án Node với framework Express, biên dịch và chạy dự án với TypeScript.

Tham gia kênh Telegram của CloudFly để nhận thêm ưu đãi và không bỏ lỡ bất kỳ khuyến mãi nào từ CloudFly
Chia sẻ

0 câu trả lời