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

ys-pub-cli

v1.0.14

Published

```bash // 需要全局安装 npm i ys-pub-cli -g # ys-pub-cli s [发布环境] [appid] [小程序根路径] [debug] ys-pub-cli s prod [appid] ./ debug ``` ### 一、接入前准备 1. 小程序代码上传秘钥 1. 登录小程序后台 2. 开发管理->开发设置->小程序代码上传->小程序代码上传密钥->生成 2. 域名白名单 ```Apache // 各个环境可自行添加 ```

Downloads

3

Readme

XX系统接入微信小程序版本发布工具

安装使用

// 需要全局安装
npm i ys-pub-cli -g
# ys-pub-cli s [发布环境] [appid] [小程序根路径] [debug]
ys-pub-cli s prod [appid] ./ debug

一、接入前准备

  1. 小程序代码上传秘钥

    1. 登录小程序后台
    2. 开发管理->开发设置->小程序代码上传->小程序代码上传密钥->生成
  2. 域名白名单

    // 各个环境可自行添加
  3. 联系运维大佬新增对应项目的小程序发布应用

二、项目改造

  1. 创建或修改package.json

    {
        "name": "xxx-system",
        "version": "3.0.1", // 上传时读取当前版本号,如果比最后一次更新版本号低,则使用最后一次版本号+1
        "description": "版本说明", // 当前版本更新说明
        "npmBuild": false,// 项目是否需要进行npm构建
        "robotApi":"xxxxxx", // 飞书机器人通知地址
        "main": "main.js",
        "directories": {
            "lib": "lib"
        },
        "scripts": {
            "start:install": "echo 'dont need run'", // 必须!!npm i 后的空操作(兼容XX现有流程)
            // node publish.js 环境变量 APPID 小程序根目录路径
            "start:test": "ys-pub-cli s test [appid] ./",
            "start:uat": "ys-pub-cli s uat  [appid] ./",
            "start:prod": "ys-pub-cli s prod [appid] ./",
            // debug模式需要添加debug参数
            "start:test:debug": "ys-pub-cli s test [appid] ./ debug",
            "start:uat:debug": "ys-pub-cli s uat [appid] ./ debug",
            "start:prod:debug": "ys-pub-cli s prod [appid] ./ debug",
        },
        "repository": {
            "type": "git",
            "url": "xxxx.git" // 项目仓库地址
        },
        "author": "ovenslove",
        "license": "ISC",
        "dependencies": {
            "wxbarcode": "^1.0.2" // 项目中需要使用到的依赖
        }
    }

三、注意事项

  1. 小程序版本号

    1. 版本号规则遵循A.B.C的版本迭代规则
    2. 当package.json未传入版本号时,按照最后一次更新上传版本号+0.0.1小版本更新
    3. 当package.json传入版本低于最后一次上传版本号,则按照最后一次更新上传版本号+0.0.1小版本更新
    4. 当package.json传入版本号高于最后一次版本号时,使用传入的版本号
    5. 当package.json未传入版本号,且第一次更新时,则使用默认版本号1.0.0
    6. 第一次接入XX时,需要将版本号设置为1.0.0才能跳过拉取sourceMap文件
  2. 版本说明

    1. 当package.json传入版本说明时,则以传入的版本说明为准
    2. 当package.json未传入版本说明时,则默认为“暂无备注信息,请后续补充完整”
  3. 本地debug

    1. 本地debug运行需要在构建命令中加入debug参数
    2. debug模式时会使用本地的key,key存在在项目根目录(package.json同级),命名为 private.[appid].key
  4. 机器人ID

    1. 默认使用机器人ID「1」来进行代码上传,可在后台查看为 开发者:ci机器人1
  5. npm构建

    1. 默认使用npm i --registry=[自定义npm源] 来安装,若私有源无对应npm包,则需要自行同步
    2. npm小程序版需要进行调整后才能被小程序构建成功,参考文档 https://developers.weixin.qq.com/miniprogram/dev/devtools/npm.html
    3. 可在package.json内配置npmBuild是否使用npm构建
  6. 构建和发布路径

    1. 默认使用项目根目录进行构建发布

    2. 可在package.json的script命令内更改发布路径

    3. 构建规则默认使用以下规则

        {
          es6: true, // 对应小程序开发者工具的 "es6 转 es5"
          es7: true, // 对应小程序开发者工具的 "增强编译"
          minifyJS: true, // 压缩 JS 代码
          minifyWXML: true, // 压缩 WXML 代码
          minifyWXSS: true, // 压缩 WXSS 代码
          minify: true, // 压缩所有代码,对应小程序开发者工具的 "压缩代码"
          codeProtect: false, // 对应小程序开发者工具的 "代码保护"
          autoPrefixWXSS: false, // 对应小程序开发者工具的 "样式自动补全"
        }
  7. 环境变量文件

    1. 构建完成后会在publish.js同级目录生成env.config.js文件,可引入该文件进行环境判断
    export default {env:'prod'};
    // 可使用import引入,注意相对路径
    import config from '/path/env.config.js'
    console.log(config.env)
  8. 飞书机器人通知

    1. 可在小程序构建上传完成后通知消息到飞书群
    2. 可在package.json配置robotApi

四、XX系统接入

  1. 新建发布项目

  2. 提交秘钥key文件给运维大佬存放

    /destination/miniprogram-ci-key/miniprogram-ci-[appid].key

    如果只有一个小程序,则可使用同一份key,不同环境按照appid进行区分,并在package.json的script中进行区分

  3. 运维大佬配置对应环境的构建命令和dockerfile

    FROM xxx-registry-vpc.cn-shenzhen.cr.aliyuncs.com/base/node:12.22.8-alpine3.15
    LABEL xxxxx
    COPY / /release/
    ARG build=test
    ENV BUILD=${build}
    ENTRYPOINT cd release&&npm install ys-pub-cli -g --registry=https://registry.npmmirror.com/&&npm run start:${BUILD}&&echo $?
  4. 分环境构建

    1. 固定命令为 npm run start:install,此命令为空命令,原因在于XX系统默认只有执行命令才会提前执行npm install 命令安装环境,但小程序后续不需要构建build,所以后续命令置空即可

五、发布流程及注意事项

  1. 正常发布流程
  2. 构建过程中仅为执行 npm install按照环境依赖
  3. 部署后才会在k8s镜像中进行上传操作,上传事件会有延迟,预估在1-5分钟内
  4. 本版本不支持上传后预览,如果需要预览,请移步mp后台进行配置预览路径等操作