网站首页 > 技术文章 正文
脚手架本地link标准流程
链接本地脚手架
cd your-cli-dir
npm link
链接本地库文件
cd your-lib-dir
npm link
cd your-cli-dir
npm link your-lib
取消本地链接脚手架
cd your-lib-dir
npm unlink
cd your-cli-dir
# link存在
npm unlink your-lib
# link不存在
rm -rf node_modules
npm install -S your-lib
理解npm link:
1.npm link your-lib :将当前项目中 node_modules 下指定的库文件链接到 node 全局 node_modules 下的库文件
2.npm link :将当前项目链接到 node 全局 node_modules 中作为一个库文件,并解析 bin 配置创建可执行文件
理解 npm unlink:
1.npm unlink:将当前项目从 node 全局 node_modules 移除
2.npm unlink your-lib :将当前项目中的库文件依赖移除
脚手架命令注册和参数解析
实现注册一个命令:curry-cli-test init
1.首先在 cli-test-lib 项目下 定义一个 init 方法
module.exports = {
init(){
console.log('执行init流程')
}
}
2.在 cli-test 中 注册 init 命令
#!/usr/bin/env node
const lib = require('cli-test-lib');
// 注册一个命令 curry-cli-test init
const argv = require('process').argv;
const command = argv[2];
console.log(command)
if(command){
if(lib[command]){
lib[command]();
}else{
console.log('无效的命令')
}
}else{
console.log('请输入命令')
}
现在在终端输入 curry-cli-test init
在终端输入 curry-cli-test publish
在终端输入 curry-cli-test
实现带参数的命令:curry-cli-test --name vue-test
1.在 cli-test 中 注册
#!/usr/bin/env node
const lib = require('cli-test-lib');
// console.log(lib.sum(1,2))
// 注册一个命令 curry-cli-test init
const argv = require('process').argv;
const command = argv[2];
// 获取 --name vue-test
const options = argv.slice(3);
let [option, param ] =options;
option = option.replace('--','')
console.log(command)
if(command){
if(lib[command]){
// 给 init 方法传入 参数
lib[command]({ option, param });
}else{
console.log('无效的命令')
}
}else{
console.log('请输入命令')
}
2.在cli-test-lib中 init 方法 引入参数
init({ option, param }){
console.log('执行init流程', option, param)
}
此时在终端执行 curry-cli-test init --name vue-test。就可以拿到传入的参数了。
实现 --version
// 实现参数解析 --version
if(command.startsWith('--') || command.startsWith('-')){
const globalOption = command.replace(/--|-/g,'')
if(globalOption === 'version' || globalOption === 'V'){
console.log('1.0.0')
}
}
效果如下:
- 上一篇: 前端脚手架的实现原理
- 下一篇: 构建自己的前端脚手架下载器笔记
猜你喜欢
- 2025-05-26 Wee – 为现代 Web 开发打造的 CSS 脚手架
- 2025-05-26 中建工地高颜值的“秘诀”:盘扣式外架+定型化网片
- 2025-05-26 你没见过的新型花篮外架技术更快捷更方便,值得推广
- 2025-05-26 图解:盘扣式脚手架搭建步骤
- 2025-05-26 收藏!2022最新工字钢悬挑脚手架做法和规范,萌新必看
- 2025-05-26 「架构师必备」基于SpringCloud的SaaS型微服务脚手架
- 2025-05-26 使用 Vue 脚手架,为什么要学 webpack?(一)
- 2025-05-26 新型梁侧预埋式外脚手架连墙件施工工艺和流程
- 2025-05-26 SpringBoot+LayUI后台管理系统开发脚手架
- 2025-05-26 推荐一款超棒的SpringCloud 脚手架项目
你 发表评论:
欢迎- 611℃几个Oracle空值处理函数 oracle处理null值的函数
- 603℃Oracle分析函数之Lag和Lead()使用
- 592℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 589℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 583℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 576℃【数据统计分析】详解Oracle分组函数之CUBE
- 566℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 558℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- PageHelper - 最方便的 MyBatis 分页插件
- 面试二:pagehelper是怎么实现分页的,
- MyBatis如何实现分页查询?(mybatis-plus分页查询)
- SpringBoot 各种分页查询方式详解(全网最全)
- 如何在Linux上运行exe文件,怎么用linux运行windows软件
- 快速了解hive(快速了解美国50个州)
- Python 中的 pyodbc 库(pydbclib)
- Linux搭建Weblogic集群(linux weblogic部署项目步骤)
- 「DM专栏」DMDSC共享集群之部署(一)——共享存储配置
- 故障分析 | MySQL 派生表优化(mysql pipe)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)