Попрощайтесь с npm install
, не нужно npm install
, выбросьте npm install
.
пример
В вашем проекте,
- добавьте
npx -y ai-install
в package.json->scripts->start/build.
{
"name": "ai-install-demo",
"scripts": {
"start": "npx -y ai-install && xxx serve --open",
"build": "npx -y ai-install && xxx build"
},
"devDependencies": {
"xxx": "x.y.z"
}
}
- добавьте новый файл npm-start.sh, его содержимое:
npm start
После git clone
, просто дважды щелкните npm-start.sh для запуска, без ввода команды.
потому что
npx -y ai-install
выполнение npm install
, если он не установлен.
npx Выполнить произвольную команду из пакета npm (либо установленного локально, либо полученного удаленно).
подумайте
Экономит ли это секунду ввода npm i
? Нет!
После установки npm i
, он не был плавно связан с npm start
, из-за чего тратилось 10 ~ 60 секунд.
Если вы используете npx -y ai-install
, то npm start
скорее всего запустится на минуту раньше.
yarn & pnpm
npx -y ai-install
В проекте yarn автоматическое выполнение yarn install
, если он не установлен.
В проекте pnpm, если он не установлен, автоматически выполняется pnpm install
.
src
в файле package.json определена команда ai-install
.
{
"name": "ai-install",
"version": "1.0.0",
"description": "Say goodbye to `npm install`, no need `npm install`, throw away `npm install`.",
"main": "index.js",
"bin": {
"ai-install": "index.js"
}
}
index.js выполняет npm/yarm/pnpm install
, если не установлен.
#!/usr/bin/env node
var fs = require('fs');
var child_process = require('child_process');
if (!fs.existsSync('node_modules')) {
if(fs.existsSync('yarn.lock')){
child_process.execSync('yarn install', { stdio: 'inherit' });
} else if (fs.existsSync('pnpm-lock.yaml')){
child_process.execSync('pnpm install', { stdio: 'inherit' });
} else {
child_process.execSync('npm install', { stdio: 'inherit' });
}
}
ссылка
ai-install npm
ai-install github