Pako-agnostikaj skriptoj kun Node.js

Kiel simpligi kurantajn skriptojn en NPM, Yarn kaj PNPM

Se vi havas kutimajn skriptojn en via package.json-dosiero, kiel "npm my-script" aŭ "yarn my-script", ili funkcios nur kun la pakaĵadministrilo, kiun vi difinas. Sed NPM proponas API por voki la nunan ruleblan ĉiun fojon, sen eksplicite specifi ĝin.

{
  "scripts": {
    "cleanup": "./clean-up.js",
    "copy": "./copy.js",
    "prepare": "npm run cleanup && npm run copy"
  }
}

Uzante $npm_execpath

Uzante la ĉenon "$npm_execpath" anstataŭ "npm" aŭ "yarn" (aŭ alia pakaĵadministrilo kiel "pnpm"), ĉi tiu skripto funkcios kun ĉiu pakaĵadministrilo, negrave kion la nuna programisto uzis por nomi la originan skripton. .

{
  "scripts": {
    "cleanup": "./clean-up.js",
    "copy": "./copy.js",
    "prepare": "$npm_execpath run cleanup && $npm_execpath run copy"
  }
}

Ĉu ĝi estas kongrua ĉe ĉiuj maŝinoj?

Bedaŭrinde, uzi "$npm_execpth" por igi skriptojn funkcii kun iu ajn pakadministranto ne fidinde funkcias ĉe maŝinoj, kiuj havas Vindozon instalitan.

Kio estas la plej fidinda maniero voki skriptojn en package.json?

Sekve, la plej fidinda maniero voki viajn kutimajn skriptojn en la package.json-dosiero ankoraŭ estas eksplicite difini la pakaĵmanĝilon plenumeblan kaj certigi, ke via teamo nur uzas tiun.

Estas pli bone ĉe aparatoj, kiuj ne funkcias Vindozon, kie vi povas uzi "$npm_execpath" por fidinde efektivigi tiujn skriptojn.