Rumah >hujung hadapan web >tutorial js >[Organisasi dan perkongsian] Bagaimana untuk menentukan pengurus pakej npm yang sedang digunakan

[Organisasi dan perkongsian] Bagaimana untuk menentukan pengurus pakej npm yang sedang digunakan

青灯夜游
青灯夜游ke hadapan
2023-02-01 20:00:352318semak imbas

Bagaimana untuk menentukan pengurus pakej npm semasa? Artikel berikut akan berkongsi dengan anda cara untuk menentukan pengurus pakej npm yang sedang anda gunakan, saya harap ia akan membantu anda

[Organisasi dan perkongsian] Bagaimana untuk menentukan pengurus pakej npm yang sedang digunakan

Ia adalah lebih biasa untuk menggunakan npm untuk. pemasangan pergantungan. Walau bagaimanapun, apabila saiz dan bilangan projek meningkat, npm akan menghadapi masalah dengan kelajuan pemasangan yang perlahan dan saiz yang berlebihan. Menggunakan pengurus pakej seperti benang dan pnpm boleh menyelesaikan masalah di atas.

Jika anda ingin memaksa ahli pasukan menggunakan pengurus pakej yang sama, atau jika anda mahu mengendalikan logik yang berbeza untuk pengurus pakej yang berbeza. Anda perlu menentukan pengurus pakej yang sedang anda gunakan.

Kaedah pelaksanaan

Gudang Vue Pada masa ini, pemaju terpaksa menggunakan pnpm, dan kaedah pelaksanaannya juga sangat bijak.

Pertama sekali, apabila menjalankan skrip npm, jalankan pra-skrip melalui perintah pre terbina dalam dan gunakan process.env.npm_execpath dalam pra-skrip untuk mendapatkan laluan fail pengurus pakej tentukan laluan fail yang digunakan oleh pembangun Jenis pengurus pakej. [Tutorial berkaitan yang disyorkan: tutorial video nodejs]

Kod yang berkaitan adalah seperti berikut:

// package.json
"scripts": {
    "preinstall": "node ./scripts/preinstall.mjs",
},
// preinstall.mjs
if (!/pnpm/.test(process.env.npm_execpath || '')) {
  console.warn(
    `\u001b[33mThis repository requires using pnpm as the package manager ` +
      ` for scripts to work properly.\u001b[39m\n`
  )
  process.exit(1)
}

pra perintah

Dalam package.json, kita sepatutnya sudah biasa dengan cara skrip npm dijalankan.

"scripts": {
    "dev": "vite",
},

Dengan membaca kod di atas, kita boleh menjalankan skrip melalui npm run dev.

Selain nama skrip tersuai, npm juga mempunyai dua perintah pre dan post terbina dalam Dengan menyambung pre sebelum nama tersuai, anda boleh melaksanakan perintah pra-cangkuk.

"scripts": {
    "dev": "vite",
    "predev": "node predev.js"
    "postdev": "node postdev.js"
},

Apabila anda menjalankan perintah npm run dev seperti ini, terminal akan dijalankan secara automatik npm run predev dahulu, kemudian npm run dev, dan akhirnya npm run postdev Dengan cara ini, kita boleh menyesuaikan Sebelum dijalankan skrip, pengurus pakej diadili terlebih dahulu.

process.env.npm_execpath

Sebelum vue@3.2.20, pengurus pakej Vue adalah benang, dan kemudiannya ia ditukar kepada pnpm.

Apabila menggunakan benang, kod yang disemak oleh pengurus pakej ialah:

// scripts/checkYarn.js
if (!/yarn\.js$/.test(process.env.npm_execpath || '')) {
    console.warn(
    '\u001b[33mThis repository requires Yarn 1.x for scripts to work properly.\u001b[39m\n'
  )
  process.exit(1)
}

Apabila ditukar kepada pnpm, kod yang disemak oleh pengurus pakej ialah:

// preinstall.mjs
if (!/pnpm/.test(process.env.npm_execpath || '')) {
  console.warn(
    `\u001b[33mThis repository requires using pnpm as the package manager ` +
      ` for scripts to work properly.\u001b[39m\n`
  )
  process.exit(1)
}

Lulus Sebaliknya, vue menggunakan process.env.npm_execpath untuk menentukan jenis pengurus pakej Dengan mendapatkan laluan pengurus pakej dan bekerjasama dengan pengambilan kata kunci, jenis pengurusan pakej boleh ditentukan.

Ringkasan

Dengan menggunakan gudang Vue, kita boleh menjalankan praskrip melalui perintah npm script terbina dalam pre , Dalam praskrip, gunakan process.env.npm_execpath untuk mendapatkan laluan fail pengurus pakej untuk menentukan jenis pengurus pakej yang digunakan oleh pembangun.

Untuk lebih banyak pengetahuan berkaitan nod, sila lawati: tutorial nodejs!

Atas ialah kandungan terperinci [Organisasi dan perkongsian] Bagaimana untuk menentukan pengurus pakej npm yang sedang digunakan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:juejin.cn. Jika ada pelanggaran, sila hubungi admin@php.cn Padam