Anda akan menemui ini di bawah import pada baris 4 dalam kod sumber Changesets
import { format } from "util";
Dalam artikel ini, gambaran keseluruhan modul util dan penggunaannya dalam Changesets disediakan.
Modul util direka terutamanya untuk menyokong keperluan API dalaman Node.js sendiri. Walau bagaimanapun, banyak utiliti berguna untuk pembangun aplikasi dan modul juga. Ia boleh diakses menggunakan:
const util = require('util');
Anda boleh membaca lebih lanjut tentang modul Util di sini.
Modul Util mempunyai beberapa API, tetapi kami berminat dengan API Format kerana ini didapati digunakan dalam kod sumber Changesets.
Kaedah util.format() mengembalikan rentetan berformat menggunakan argumen pertama sebagai format seperti printf.
Argumen pertama ialah rentetan yang mengandungi sifar atau lebih token pemegang tempat. Setiap token pemegang tempat digantikan dengan nilai yang ditukar daripada hujah yang sepadan. Pemegang tempat yang disokong ialah:
%s — Rentetan.
%d — Nombor (integer atau nilai titik terapung).
%i — Integer.
%f — Nilai titik terapung.
%j — JSON. Digantikan dengan rentetan '[Bulatan]' jika hujah mengandungi rujukan bulat.
%o — Objek. Perwakilan rentetan objek dengan pemformatan objek JavaScript generik. Serupa dengan
util.inspect() dengan pilihan { showHidden: true, depth: 4, showProxy: true }. Ini akan menunjukkan objek penuh
termasuk simbol dan sifat yang tidak boleh dikira.
%O — Objek. Perwakilan rentetan objek dengan pemformatan objek JavaScript generik. Sama seperti util.inspect()
tanpa pilihan. Ini akan menunjukkan objek penuh tidak termasuk simbol dan sifat yang tidak boleh dikira.
%% — tanda peratus tunggal (‘%’). Ini tidak memerlukan hujah.
Jika pemegang tempat tidak mempunyai hujah yang sepadan, pemegang tempat tidak diganti.
util.format('%s:%s', 'foo'); // Returns: 'foo:%s'
Jika terdapat lebih banyak argumen yang dihantar kepada kaedah util.format() daripada bilangan ruang letak, argumen tambahan akan dipaksa menjadi rentetan kemudian digabungkan ke rentetan yang dikembalikan, masing-masing dibatasi oleh ruang. Argumen berlebihan yang jenisnya ialah 'objek' atau 'simbol' (kecuali null) akan diubah oleh util.inspect().
util.format('%s:%s', 'foo', 'bar', 'baz'); // 'foo:bar baz'
Jika argumen pertama bukan rentetan maka util.format() mengembalikan rentetan yang merupakan gabungan semua argumen yang dipisahkan oleh ruang. Setiap argumen ditukar kepada rentetan menggunakan util.inspect().
util.format(1, 2, 3); // '1 2 3'
Jika hanya satu hujah dihantar ke util.format(), ia dikembalikan seperti sedia ada tanpa sebarang pemformatan.
import { format } from "util";
Sekarang kita memahami asas modul Util dan API format, mari kita lihat penggunaan format dalam Changesets.
Sedang mencari format, saya menjumpai 2 contoh di mana format digunakan.
const util = require('util');
Ini hanya menghasilkan ralat dan tiada penggantian perlu dibuat kerana hujah pertama ialah rentetan kosong.
util.format('%s:%s', 'foo'); // Returns: 'foo:%s'
Ini menghasilkan rentetan yang dipisahkan oleh ruang, dengan mengandaikan …args dipisahkan koma
Di Thinkthroo, kami mengkaji projek sumber terbuka yang besar dan menyediakan panduan seni bina. Kami telah membangunkan Komponen boleh guna semula, dibina dengan tailwind, yang boleh anda gunakan dalam projek anda. Kami menawarkan perkhidmatan pembangunan Next.js, React dan Node.
Tempah mesyuarat dengan kami untuk membincangkan projek anda.
https://www.npmjs.com/package/util
https://github.com/changesets/changesets/blob/main/packages/cli/src/index.ts#L4
https://github.com/changesets/changesets/blob/main/packages/cli/src/index.ts#L88
https://nodejs.org/docs/latest-v8.x/api/util.html#util_util_format_format_args
https://github.com/changesets/changesets/blob/main/packages/logger/src/index.ts#L23
https://github.com/changesets/changesets/blob/main/packages/get-github-info/src/index.test.ts#L127
https://github.com/changesets/changesets/blob/main/packages/cli/src/index.ts#L88
Atas ialah kandungan terperinci Node.js menggunakan penggunaan modul dalam Changesets. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!