npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

lime-cli

v1.1.5

Published

Simple CLI for scaffolding lime projects

Downloads

39

Readme

npm npm npm NPM

lime-cli

lime-cli是 lime.js Web开发框架配套的项目管理工具,包含 项目初始化、项目模块创建等能力;同时具有灵活的 子命令 开发机制。

特性

  • 初始化适配各种场景的 lime.js 项目, 快速启动开发.
  • 灵活的插件机制,内置配置管理能力;快速开发自定义命令.
  • 快捷创建 lime 框架模块,如 controller、model. [developing]

安装

npm install lime-cli -g
# 或
npm install @limejs/cli -g

使用

lime-cli 默认支持的命令有:

lime init # 可交互的方式初始化 lime 项目脚手架
lime list # 查询并列出支持的 官方和私有项目模板
lime tpl # 增删私有项目模板
lime doc # 查看 lime-cli 帮助文档
lime config # 修改本地 lime-cli 的配置
lime new [controller|model|view] # 新建 controller 相关文件,*尚未支持*
lime plugin # 管理 lime 项目插件 *尚未支持*

初始化项目

目前官方提供的项目样板有:

  • [BASIC 基于 LIME.JS 的项目基础项目模板,包含可选的基础 MVC 模块 [适合简单 demo]
  • [REST] 一个完善的 API 开发骨架,在基础模板之上,增强了 REST API 项目开发的能力,去除了不必要的视图层。[适合 restful api 项目]
  • [SPA] 经典的基于 Vue.js 的前后端分离的单页应用;分离开发,聚合部署 [适合内网管理端或没有SEO要求的外网产品]
  • [SSR] 基于 Vue.js + SSR 实现的完善的项目模板,支持开发环境热替换和生产环境的编译、部署 [适合对性能和SEO有要求的外网产品]

初始化一个项目只需使用 lime init <project-foler>

例如:

lime init my-project

其中 my-project 表示要把项目创建在哪个 目录 下,可以支持输入 . 表示当前所在目录。

执行上述命令,会交互式的选择所使用的 项目模板,然后发起模板所要求的交互提示。在完成交互后,项目会在你指定的 my-project 下生成所有项目样板文件。之后您可以进入项目目录,进行开发工作。

目前 lime-cli 支持官方提供的 4 个项目模板,如果你需要自己定制也非常简单,参考 模板制作 指引来开发自己的私有模板。

cli 本地配置

lime config set a=1 // 设置配置项a的值为1

你可以设置任意自己喜欢的配置,以备自己编写自定义命令插件时使用。当然,lime-cli 自身已经支持了一些可用的配置。

lime-cli 自身支持如下的配置项:

配置名 | 含义|默认值|示例 ----- | --- |----|--- self_cmd_dir|放置自定义子命令代码的目录|lime-cmd|"utils/mycmd" templates_dir|远程模板的缓存目录|~/.lime-cli|"~/.lime"

你可以通过 lime config list 查看本地所有配置内容。 同时支持 get <key>, set <key> 的方式获取和设置单个 key。

制作私有模板

通常,你的团队可能会形成自己的项目样板。借助 lime-cli,你可以使用自己的样板来初始化项目。步骤如下:

  1. 编写项目模板(教程),并托管到 github/bucket 等支持 git 协议的代码仓库平台
  2. 通过 lime tpl add <name> <url> 命令将自己的私有模板添加到 lime-cli 的模板列表中
  lime tpl add mytpl myaccount/lime

其中 url 字段可以填写 github 的仓库短名称;如果不是 github 上的仓库,可以使用模板的完整的 URI 地址

自定义子命令

随着项目复杂度增加,可能需要编写一些命令来提高工作效率。lime-cli 支持编写自己的子命令,如实现一个 lime drop 命令。编写方式非常简单。现在假设你要编写一个 drop 子命令用来删除特定的页面文件,我们以此为例来说明步骤:

  • 在当前项目根目录下创建一个目录 lime-cmd
  • 在 lime-cmd 目录下创建一个子目录叫做 drop
  • 在drop目录下新建一个 index.js 文件
  • 按照规范编写子命令代码
  • lime-cli 再次执行时,会自动加载当前工作目录(cwd)下的 lime-cmd 目录中的子命令

编写子命令代码

子命令js代码中只需导出一个 commander 所需的模块即可,对应字段的含义也可以去参考 commander 的官方文档。在这里我们简单介绍一下,足够你编写自己所需的命令功能。

const rimrf = require('rimrf')

module.exports = {
    command: "drop",
    description: "删除项目的dist目录",
    help: () => {
        console.log('  例子:');
        console.log('');
        console.log('    $ lime drop');
        console.log();
    },
    options: [
      ['--f', '递归强制删除']
    ],
    action: () => {
        rimrf(path.join(process.cwd(), 'dist'))
        process.exit(0);
    }
};

其中

  • command 表示子命令名字,格式跟 commander.command() 方法一致;
  • description表示命令的描述,可在 -h 查看帮助时输出在顶部;
  • help 会以 commander.on('help') 的方式挂载,可以给当前子命令追加自己喜欢的帮助信息;
  • options表示配置选项,会以 commander.options() 的方式挂载,与 commander.options方法形参格式一致,第一个参数表示option指令,第二个参数表示参数描述
  • action是commander命中后的回调,在这里可以编写你命令的主要逻辑

TODO

支持更多类似 thinkjs 的模块添加命令

Thanks

lime-cli 有参考 vue-cli, zan-node, think-cli, rato 等项目,在此对这些开源项目表示感谢

License

MIT