写点什么

用 node 写个简单的脚手架!

用户头像
关注
发布于: 1 小时前
1.在 node 中开启 module
package.json"type": "module","main": "./src/index.js" // 引入插件,默认调用的入口文件  "bin": { // 全局安装后 执行plVueCli命令     "plVueCli": "./src/index.js"  }
复制代码

开启后可以使用 es6 的语法,但是__dirname 用不了,用以下办法解决

import { fileURLToPath } from 'url';const __dirname = fileURLToPath(import.meta.url);
复制代码
2.命令行交互插件
import inquirer from "inquirer";const inquirerObj = await inquirer.prompt([    {        type: "input",        name: "projectName",        message: "set project name",        validate(val) {            if (val) return true;            return "Please enter project name";        },    },    {        type: "checkbox",        message: "please select",        name: 'middleware',        choices: [            {                name: 'vueRouter'            }        ],    }]);
复制代码
3.使用 execa 显示进程,并下载 package.json 中的依赖
// cwd:安装路径,inherit:显示进度import execa from "execa";execa("yarn", {cwd: `./${inquirerObj.projectName}`, stdio: 'inherit'});
复制代码
4.使用模板引擎 ejs,配置化改变输出数据
import ejs from 'ejs';ejs.render(packageJson, inquirerObj);
复制代码
5.使用到的 node 方法
import { join, resolve } from 'path';fs.mkdirSync(path,{recursive: true}) // recursive: true 时设置成功返回路径名fs.readFileSync()fs.writeFile() 
复制代码
6.额外配置
# 指定脚本运行环境,全局安装插件时需要    #!/usr/bin/env node# 切换源,登录npm发布包需要切换到npm    npm config set registry http://registry.npm.taobao.org/    npm config set registry https://registry.npmjs.org/
# 登录npm npm login# 发布 npm publish --registry https://registry.npmjs.org# 设置那些文件发布上去 "files": ["bin" "package.json"]# 删除发布的npm包 npm unpublish--force --registry https://registry.npmjs.org
# yarn常用操作 yarn add name -save/-dev yarn remove name -save/-dev
yarn global add name yarn global <add/bin/list/remove/upgrade> yarn global list --depth=0
复制代码

发布于: 1 小时前阅读数: 2
用户头像

关注

还未添加个人签名 2020.08.05 加入

还未添加个人简介

评论

发布
暂无评论
用node写个简单的脚手架!