1.1.1 • Published 2 years ago

ai-install v1.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

ai-install 命令

永别了 npm install, 让你的前端项目免执行 npm install.

例子

在你的前端项目中,

1)添加 npx -y ai-install(npm>=7) 到 package.json->scripts->start/build.

使用npx -y ai-install(npm<=6)

{
  "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"
  }
}

2)新增 npm-start.sh 文件,内容是:

npm start

那么 git clone 拉取代码之后, 双击 npm-start.sh 运行,免敲命令。

原理

package.json->scripts 中的

npx -y ai-install

执行 ai-install 命令:如果项目未初始安装,那么自动执行 npm install.

npx 优先执行本地命令,如果本地不存在则去 npmjs.com 查找。

思考

它节省的是敲击 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

源代码

package.json 定义了一个 'ai-install' 的命令。

{
  "name": "ai-install",
  "version": "1.0.0",
  "description": "Say goodbay to `npm install`, no need `npm install`, throw away `npm install`.",
  "main": "index.js",
  "bin": {
    "ai-install": "index.js"
  }
}

index.js 如果项目未初始化安装,那么区分 npm/yarn/pnpm 环境,执行对应的 npm 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 if (fs.existsSync('package-lock.json') || fs.existsSync('npm-shrinkwrap.json')){
    // 'npm ci' is faster than 'npm i'.
    child_process.execSync('npm ci', { stdio: 'inherit' });
  } else {
    child_process.execSync('npm i', { stdio: 'inherit' });
  }
}
1.1.1

2 years ago

1.1.0

2 years ago

1.0.0

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago