Buat perpustakaan teknologi terbaru

Hai, Habr. Artikel ini adalah tentang bagaimana menulis Hello world dengan teknologi terbaru.


Pada akhirnya, kami mendapatkan perpustakaan hello world yang:


  • Menggunakan naskah
  • Merawat gaya kode
  • Menghasilkan dermaga
  • Melakukan tes

Mulai, dimulai


Di folder baru, jalankan git dan npm


git init npm init 

Saat mengatur npm


  package name: (bestlibever) version: (1.0.0) 0.1.0 description: Best lib forever entry point: (index.js) test command: jest git repository: keywords: author: >MAX_ (maximmasterr) license: (ISC) MIT 

Struktur proyek


Proyek akan memiliki direktori berikut:


  • src - Ini akan menjadi file perpustakaan itu sendiri (naskah)
  • lib - Di sini tsc akan meletakkan file yang dikompilasi dari src
  • test - Inilah tes-tesnya
  • contoh - Contoh penggunaan

Anda juga perlu menambahkan ke .gitignore :


 lib/ node_modules/ 

Naskah


Sekarang instal dan konfigurasikan naskah:


 npm i typescript -D 

Dan buat file bernama tsconifg.json


  { "compilerOptions": { "target": "es5", "module": "commonjs", "declaration": true, "outDir": "./lib", "strict": true, "sourceMap": true }, "include": ["src"], "exclude": ["node_modules", "**/__tests__/*"] } 

Sekarang mari kita buat file utama yang terletak src/index.ts


 export function helloWorld(){ return 'Hello world!' } 

Juga tambahkan skrip ke package.json :


  "build": "tsc", "dev": "tsc --watch" 

Sekarang kita dapat menjalankan build satu kali menggunakan:


 npm run build 

Dan dapat digunakan kembali:


 npm run dev 

Codestyle


Untuk menguji gaya kode, kita akan menggunakan tslint dan lebih cantik, serta menjalankan ini sebelum melakukan.
Pasang tslint, lebih cantik, serak:


 npm i tslint tslint-config-prettier prettier husky -D 

Konfigurasikan lebih cantik dengan membuat file .prettierrc dengan kontennya


 { "printWidth": 120, "trailingComma": "none", "singleQuote": true } 

Tambahkan skrip untuk menjalankan lebih cantik


  "prettier": "npx prettier --write src/* test/* example/*" 

Konfigurasikan tslint dengan membuat file tslint.json dengan kontennya


 { "extends": ["tslint:recommended", "tslint-config-prettier"], "rules": { "curly": false, "ordered-imports": false, "interface-name": [true, "never-prefix"] } } 

Tambahkan skrip dan codestyle tslint:


  "tslint": "tslint -p tslint -p tsconfig.json", "codestyle": "npm run prettier && npm run tslint" 

Sekarang mari kita buat codestyle dijalankan sebelum melakukan dan tambahkan ke package.json :


 "husky": { "hooks": { "pre-commit": "npm run codestyle" } } 

Dokumentasi


Untuk menghasilkan halaman web dari md kami menggunakan docsify dan untuk menghasilkan dokumentasi dari api tsdoc


Pasang mereka


 npm i docsify-cli typedoc -D 

Di folder dokumen, buat README.md :


 # Best lib ever Best lib ever `helloWorld` return `'hello world'` ## Example ``js const a = require('') console.log(a.helloWorld()) // prints 'Hello world!' `` 

Juga tambahkan moreExample.md
Sumbernya ada di sini


Selanjutnya lakukan


 npx docsify init ./docs 

Siapkan sidebar di docsify dengan membuat file sidebar.md


 # Best lib ever * [Best lib ever](/) * [More examples](/moreExamples) 

Sekarang, untuk melihat semua keindahan ini, tambahkan skrip


 "docsify": "docsify serve ./docs" 

Dan lari


 npm run docsify 

Sekarang mari kita ambil dokumentasi metode statis
Pertama, tambahkan deskripsi fungsi dalam kode:


 /** * Returns `Hello world!` */ 

Di .gitinore tambahkan docs/api


Tambahkan skrip untuk typedoc


 "typedoc": "typedoc --out ./docs/api ./src --mode file --readme docs/README.md" 

Akhirnya, tambahkan skrip dock final


 "docs": "npm run typedoc && npm run docsify" 

Sekarang semuanya sudah cukup untuk melihat dermaga


 npm run docs 

Tes


Pasang lelucon


 npm install --save-dev @types/jest @types/node jest ts-jest typescript 

Mari kita membuat konfigurasi jest.config.js


 module.exports = { roots: ['/src'], transform: { '^.+\\.tsx?$': 'ts-jest', }, testRegex: '(/__test__/.*|(\\.|/)(test|spec))\\.tsx?$', moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'], } 

Buat tes ( test/index.ts ):


 import { helloWorld } from "../src"; test('Should return helloWorld', () => { expect(helloWorld()).toBe('Hello world!') }) 

Dan sekarang Anda dapat menjalankan tes


 npm test 

Ringkaslah


Sekarang kita bisa


 npm run build #   npm run dev #    npm run codestyle #    npm run docs #   npm test #   

Repositori github terakhir

Source: https://habr.com/ru/post/id467187/


All Articles