newsee-cli 1.0.6 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/DEPLOY.md +104 -0
  2. package/bin/init.js +1 -1
  3. package/package.json +2 -1
package/DEPLOY.md ADDED
@@ -0,0 +1,104 @@
1
+ # 发布流程
2
+
3
+ ## 发布到 npm
4
+
5
+ ### 1. 准备工作
6
+ - 确保已安装 Node.js 和 npm
7
+ - 注册 npm 账号(如果还没有)
8
+
9
+ ### 2. 登录 npm
10
+ ```bash
11
+ npm login
12
+ ```
13
+ 输入你的 npm 用户名、密码和邮箱
14
+
15
+ ### 3. 更新版本号
16
+ 在 `package.json` 中更新版本号:
17
+ ```json
18
+ {
19
+ "version": "1.0.7"
20
+ }
21
+ ```
22
+
23
+ ### 4. 构建项目
24
+ ```bash
25
+ npm run build
26
+ ```
27
+ 这会使用 webpack 打包并混淆代码
28
+
29
+ ### 5. 发布前测试(可选)
30
+ ```bash
31
+ # 打包测试
32
+ npm pack
33
+
34
+ # 本地安装测试
35
+ npm install ./newsee-cli-1.0.7.tgz
36
+
37
+ # 测试运行
38
+ ns-init
39
+ ```
40
+
41
+ ### 6. 发布到 npm
42
+ ```bash
43
+ npm publish
44
+ ```
45
+
46
+ ### 7. 验证发布
47
+ - 访问 [npm](https://www.npmjs.com/package/newsee-cli) 查看包是否成功发布
48
+ - 测试全局安装:
49
+ ```bash
50
+ npm install -g newsee-cli
51
+ ns-init
52
+ ```
53
+
54
+ ## 发布到私有仓库
55
+
56
+ 如果需要发布到私有 npm 仓库:
57
+
58
+ ### 1. 设置 registry
59
+ ```bash
60
+ npm config set registry http://your-private-registry.com
61
+ ```
62
+
63
+ ### 2. 登录私有仓库
64
+ ```bash
65
+ npm login --registry=http://your-private-registry.com
66
+ ```
67
+
68
+ ### 3. 发布
69
+ ```bash
70
+ npm publish
71
+ ```
72
+
73
+ ### 4. 恢复官方源(可选)
74
+ ```bash
75
+ npm config set registry https://registry.npmjs.org
76
+ ```
77
+
78
+ ## 常见问题
79
+
80
+ ### 1. 包名已被占用
81
+ 如果 `newsee-cli` 已被占用,需要:
82
+ - 修改 `package.json` 中的 `name` 字段
83
+ - 或使用 scoped 包名:`@username/newsee-cli`
84
+
85
+ ### 2. 发布失败
86
+ - 检查网络连接
87
+ - 确认版本号是否比已发布版本高
88
+ - 检查是否有权限发布该包
89
+
90
+ ### 3. 版本管理
91
+ 遵循语义化版本控制:
92
+ - 主版本号:不兼容的 API 修改
93
+ - 次版本号:向下兼容的功能性新增
94
+ - 修订号:向下兼容的问题修正
95
+
96
+ ## 更新流程
97
+
98
+ 当需要更新已发布的包时:
99
+
100
+ 1. 更新版本号
101
+ 2. 运行 `npm run build`
102
+ 3. 运行 `npm publish`
103
+
104
+ npm 会自动处理版本更新,用户可以通过 `npm update` 更新到最新版本。
package/bin/init.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- (()=>{var e={843:e=>{e.exports={simulateProgressBar:function(e){let t,r=0,o=10;const s=()=>{r<100&&(r+=o,console.log(`Progress: ${r}%`),r>=70&&(o=15),r>=90&&(o=20),t=setTimeout(s,100*o)),e(r)};return t=setTimeout(s,100),()=>{clearTimeout(t),r=100,console.log(`Progress: ${r}%`),e(100)}}}},22:e=>{"use strict";e.exports=require("chalk")},303:e=>{"use strict";e.exports=require("child_process")},295:e=>{"use strict";e.exports=require("cli-progress")},974:e=>{"use strict";e.exports=require("debug")},545:e=>{"use strict";e.exports=require("download-git-repo")},632:e=>{"use strict";e.exports=require("ejs")},116:e=>{"use strict";e.exports=require("figlet")},470:e=>{"use strict";e.exports=require("fs-extra")},290:e=>{"use strict";e.exports=require("inquirer")},591:e=>{"use strict";e.exports=require("ora")},423:e=>{"use strict";e.exports=require("path")},369:e=>{"use strict";e.exports=require("process")}},t={};function r(o){var s=t[o];if(void 0!==s)return s.exports;var i=t[o]={exports:{}};return e[o](i,i.exports,r),i.exports}(()=>{const e=r(591),t=(r(295),r(369)),o=r(116),s=r(290),i=r(545),c=r(632),a=r(470),{exec:n,execSync:p}=r(303),m=r(22);r(423);t.env.DEBUG="download-git-repo";const u=r(974)("download-git-repo");u.enabled=!0;const{simulateProgressBar:l}=r(843);console.log(o.textSync("newsee cli by nodejs",{font:"Doom",horizontalLayout:"default",verticalLayout:"default"}));const d=e("远端调用模板中-copy...");d.color="yellow";const x=[{name:"pc-template(pc 模板)",value:"micro"},{name:"wireless-template(h5 模板)",value:"h5"},{name:"mp-template(小程序 模版)",value:"mp"}];(async function(){const e=await s.prompt([{type:"input",name:"projectName",message:"请输入项目名称(示例: micro-arm, 输入arm; h5-arm, 也输入arm):"},{type:"input",name:"decs",message:"请输入项目描述(示例: 微前端 - 应收中台):"},{type:"list",name:"isAdd",message:"是否创建新的根目录:",choices:[{value:!0},{value:!1}]},{type:"list",name:"template",message:"请选择模板:",choices:x}]),{projectName:r,decs:o,template:n,isAdd:p}=e,l=`.temp/${n}_'${r}`;d.start();try{const e={mirco:"http://47.96.187.51:3001/zhouxia/micro-pc-template.git",h5:"http://47.96.187.51:3001/zhouxia/micro-wireless-template.git",mp:"http://47.96.187.51:3001/zhouxia/micro-mp-template.git"};await function(e,t){return new Promise(((r,o)=>{i("direct:"+e,t,{auth:"bab304614ce90ca324d0236579439f71d88416b0",clone:!0,debug:u},(e=>{e?o(e):r()}))}))}(e[n],l),await async function(e,t,r,o,s){const i={projectName:e,decs:t},n=["package.json","README.md","config/injection/index.js"];for(const e of n)if(a.existsSync(`${r}/${e}.ejs`)){let t=await c.renderFile(`${r}/${e}.ejs`,i);await a.writeFile(`${r}/${e}`,t),await a.rm(`${r}/${e}.ejs`)}const p=`${r}/config/injection/version/micro_\${projectName}_0.0.1.js`,m=`${r}/config/injection/version/micro_${e}_0.0.1.js`;if(a.existsSync(p)&&await a.rename(p,m),o){a.existsSync(`micro_${e}`)&&await a.remove(`micro_${e}`);const t=`${s}-${e}`;await a.mkdir(t),await a.copy(r,t)}else await a.copy(r,"./")}(r,o,l,p,n),await a.remove(".temp"),d.succeed("done"),console.log(m.green("模板创建成功")),t.exit(1)}catch(e){await a.remove(".temp"),console.log(m.red("操作失败:",e)),t.exit(1)}})().catch((e=>{console.error(m.red("程序错误:",e)),d.fail("请检查环境"),a.remove(".temp")}))})()})();
2
+ (()=>{var e={843:e=>{e.exports={simulateProgressBar:function(e){let t,s=0,i=10;const o=()=>{s<100&&(s+=i,console.log(`Progress: ${s}%`),s>=70&&(i=15),s>=90&&(i=20),t=setTimeout(o,100*i)),e(s)};return t=setTimeout(o,100),()=>{clearTimeout(t),s=100,console.log(`Progress: ${s}%`),e(100)}}}},22:e=>{"use strict";e.exports=require("chalk")},303:e=>{"use strict";e.exports=require("child_process")},295:e=>{"use strict";e.exports=require("cli-progress")},974:e=>{"use strict";e.exports=require("debug")},545:e=>{"use strict";e.exports=require("download-git-repo")},632:e=>{"use strict";e.exports=require("ejs")},116:e=>{"use strict";e.exports=require("figlet")},470:e=>{"use strict";e.exports=require("fs-extra")},290:e=>{"use strict";e.exports=require("inquirer")},591:e=>{"use strict";e.exports=require("ora")},423:e=>{"use strict";e.exports=require("path")},369:e=>{"use strict";e.exports=require("process")},147:e=>{"use strict";e.exports=JSON.parse('{"name":"newsee-cli","version":"1.0.7","description":"新视窗脚手架工具","main":"bin/init.js","bin":{"ns-init":"./bin/init.js"},"scripts":{"init":"node bin/init.js","dev":"node src/init.js","test":"echo \\"Error: no test specified\\" && exit 1","uglifyjs":"uglifyjs ./src/init.js -o ./bin/init.js -c -m","build":"webpack --mode production"},"repository":{"type":"git","url":"https://gitee.com/zhouxiazxzxzx/zx-cli.git"},"keywords":["cli","new-see","front","micro"],"author":"zhouxia","license":"ISC","dependencies":{"cli-progress":"^3.12.0","commander":"^10.0.1","download-git-repo":"^3.0.2","ejs":"^3.1.9","express":"^4.18.2","figlet":"^1.6.0","fs-extra":"^11.1.1","inquirer":"^8.0.0","js-beautify":"^1.14.7","ora":"5.4.1","javascript-obfuscator":"^4.0.2"},"devDependencies":{"webpack":"^5.83.1","webpack-cli":"^5.1.1","webpack-obfuscator":"^3.5.1","uglify-js":"^3.17.4"}}')}},t={};function s(i){var o=t[i];if(void 0!==o)return o.exports;var r=t[i]={exports:{}};return e[i](r,r.exports,s),r.exports}(()=>{const e=s(591),t=(s(295),s(369)),i=s(116),o=s(290),r=s(545),c=s(632),n=s(470),{exec:a,execSync:p}=s(303),l=s(22),u=(s(423),t.argv.slice(2));if(u.includes("-v")||u.includes("--version")){const e=s(147);console.log(e.version),t.exit(0)}t.env.DEBUG="download-git-repo";const m=s(974)("download-git-repo");m.enabled=!0;const{simulateProgressBar:d}=s(843);console.log(i.textSync("newsee cli by nodejs",{font:"Doom",horizontalLayout:"default",verticalLayout:"default"}));const g=e("远端调用模板中-copy...");g.color="yellow";const x=[{name:"pc-template(pc 模板)",value:"micro"},{name:"wireless-template(h5 模板)",value:"h5"},{name:"mp-template(小程序 模版)",value:"mp"}];(async function(){const e=await o.prompt([{type:"input",name:"projectName",message:"请输入项目名称(示例: micro-arm, 输入arm; h5-arm, 也输入arm):"},{type:"input",name:"decs",message:"请输入项目描述(示例: 微前端 - 应收中台):"},{type:"list",name:"isAdd",message:"是否创建新的根目录:",choices:[{value:!0},{value:!1}]},{type:"list",name:"template",message:"请选择模板:",choices:x}]),{projectName:s,decs:i,template:a,isAdd:p}=e,u=`.temp/${a}_'${s}`;g.start();try{const e={micro:"http://47.96.187.51:3001/zhouxia/micro-pc-template.git",h5:"http://47.96.187.51:3001/zhouxia/micro-wireless-template.git",mp:"http://47.96.187.51:3001/zhouxia/micro-mp-template.git"};await function(e,t){return new Promise(((s,i)=>{console.log("开始下载模板:",e),console.log("目标目录:",t),r("direct:"+e,t,{auth:"190e73ddf745738532fda58c08e2607d8bc1c94f",clone:!0,debug:m},(e=>{e?(console.error("Git clone error:",e.message),console.error("完整错误信息:",e),i(e)):s()}))}))}(e[a],u),await async function(e,t,s,i,o){const r={projectName:e,decs:t},a=["package.json","README.md","config/injection/index.js"];for(const e of a)if(n.existsSync(`${s}/${e}.ejs`)){let t=await c.renderFile(`${s}/${e}.ejs`,r);await n.writeFile(`${s}/${e}`,t),await n.rm(`${s}/${e}.ejs`)}const p=`${s}/config/injection/version/micro_\${projectName}_0.0.1.js`,l=`${s}/config/injection/version/micro_${e}_0.0.1.js`;if(n.existsSync(p)&&await n.rename(p,l),i){n.existsSync(`micro_${e}`)&&await n.remove(`micro_${e}`);const t=`${o}-${e}`;await n.mkdir(t),await n.copy(s,t)}else await n.copy(s,"./")}(s,i,u,p,a),await n.remove(".temp"),g.succeed("done"),console.log(l.green("模板创建成功")),t.exit(1)}catch(e){await n.remove(".temp"),console.log(l.red("操作失败:",e)),t.exit(1)}})().catch((e=>{console.error(l.red("程序错误:",e)),g.fail("请检查环境"),n.remove(".temp")}))})()})();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "newsee-cli",
3
- "version": "1.0.6",
3
+ "version": "1.0.8",
4
4
  "description": "新视窗脚手架工具",
5
5
  "main": "bin/init.js",
6
6
  "bin": {
@@ -8,6 +8,7 @@
8
8
  },
9
9
  "scripts": {
10
10
  "init": "node bin/init.js",
11
+ "dev": "node src/init.js",
11
12
  "test": "echo \"Error: no test specified\" && exit 1",
12
13
  "uglifyjs": "uglifyjs ./src/init.js -o ./bin/init.js -c -m",
13
14
  "build": "webpack --mode production"