rigjs 1.0.25 → 1.0.29

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.
package/README.md CHANGED
@@ -152,6 +152,12 @@ Make sure you are not using developing modules for production.
152
152
  ### rig tag
153
153
  Using version in package.json to tag.
154
154
 
155
+ ### rig --env fp_test
156
+ This command automatically reads the file named "env.rig.json5" in the root directory,
157
+ and looks for the environment variable configuration in mode "fp_test",
158
+ and eventually generates a file for you with a fixed name of ".env.rig".
159
+ Warning: Like "fp_test" is a mandatory variable.
160
+
155
161
  ## TODO
156
162
  rig install不覆盖rigs下的文件
157
163
  es5兼容文档
package/README_CN.md CHANGED
@@ -117,7 +117,9 @@ let inserted = {
117
117
  }
118
118
  }
119
119
  ```
120
-
120
+ rig机制概括起来就是分库开发,整体构建。
121
+ ![develop](https://github.com/FlashHand/rig/raw/main/develop.png)
122
+ ![production](https://github.com/FlashHand/rig/raw/main/production.png)
121
123
  #### 主要功能
122
124
 
123
125
  1. 更方便的进行模块化开发,
@@ -147,5 +149,9 @@ let inserted = {
147
149
  使用package.json中的version打tag
148
150
  //TODO:自动检查是否存在未提交代码。
149
151
 
152
+ ### rig --env fp_test
153
+ 该指令首先会在根目录下寻找名为'env.rig.json5'的文件,然后根据所传变量fp_test去该文件读取相应配置,
154
+ 最后自动将该配置写入固定名称为".env.rig"的文件。注意:类似"fp_test"的变量为必传项。
155
+
150
156
  ###rig info
151
157
  查看模块配置信息
package/demo/package.json CHANGED
@@ -2,9 +2,7 @@
2
2
  "name": "demo",
3
3
  "version": "1.0.0",
4
4
  "dependencies": {
5
- "moment": "^2.29.1",
6
- "r-foundation": "git+ssh://git@git.rys.cn:f2e-common/r-foundation.git#1.0.1",
7
- "undefined": "git+ssh://git@git.rys.cn:f2e-common/r-foundation.git#1.0.1"
5
+ "r-foundation": "git+ssh://git@git.rys.cn:f2e-common/r-foundation.git#1.0.1"
8
6
  },
9
7
  "private": true,
10
8
  "workspaces": [
@@ -15,5 +13,8 @@
15
13
  "preinstall": "rig preinstall",
16
14
  "postinstall": "rig postinstall"
17
15
  },
18
- "info": "test"
16
+ "info": "test",
17
+ "devDependencies": {
18
+ "json5": "2.1.3"
19
+ }
19
20
  }
@@ -0,0 +1,14 @@
1
+ const json5 = require('json5');
2
+ const fs = require('fs');
3
+ const getPkgs = () => {
4
+ let pkgArr = json5.parse(fs.readFileSync('./package.rig.json5'));
5
+ let flatPkgArr = pkgArr.map((item, index) => {
6
+ return item.name;
7
+ });
8
+ console.log(flatPkgArr);
9
+ return flatPkgArr;
10
+ }
11
+
12
+ module.exports = {
13
+ getPkgs
14
+ }
package/demo/yarn.lock CHANGED
@@ -1,25 +0,0 @@
1
- # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2
- # yarn lockfile v1
3
-
4
-
5
- dayjs@^1.8.30:
6
- version "1.9.3"
7
- resolved "https://registry.npm.taobao.org/dayjs/download/dayjs-1.9.3.tgz?cache=0&sync_timestamp=1602580965878&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdayjs%2Fdownload%2Fdayjs-1.9.3.tgz#b7f94b22ad2a136a4ca02a01ab68ae893fe1a268"
8
- integrity sha1-t/lLIq0qE2pMoCoBq2iuiT/homg=
9
-
10
- lodash@^4.17.19:
11
- version "4.17.20"
12
- resolved "https://registry.npm.taobao.org/lodash/download/lodash-4.17.20.tgz?cache=0&sync_timestamp=1597336082988&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
13
- integrity sha1-tEqbYpe8tpjxxRo1RaKzs2jVnFI=
14
-
15
- moment@^2.29.1:
16
- version "2.29.1"
17
- resolved "https://registry.npm.taobao.org/moment/download/moment-2.29.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmoment%2Fdownload%2Fmoment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3"
18
- integrity sha1-sr52n6MZQL6e7qZGnAdeNQBvo9M=
19
-
20
- "r-foundation@git+ssh://git@git.rys.cn:f2e-common/r-foundation.git#1.0.1", "undefined@git+ssh://git@git.rys.cn:f2e-common/r-foundation.git#1.0.1":
21
- version "1.0.0"
22
- resolved "git+ssh://git@git.rys.cn:f2e-common/r-foundation.git#ea22c1bcb7b84b2e5ea52683c36aaad73ef26100"
23
- dependencies:
24
- dayjs "^1.8.30"
25
- lodash "^4.17.19"
package/develop.png ADDED
Binary file
@@ -0,0 +1,38 @@
1
+ /**
2
+ * @ignore
3
+ * @Description nothing
4
+ * @author Wang Bo (ralwayne@163.com)
5
+ * @date 2021/11/18 6:14 PM
6
+ */
7
+ const fs = require('fs');
8
+ const json5 = require('json5');
9
+ const print = require("../print");
10
+
11
+ //加载命令控制器
12
+ const load = async (cmd) => {
13
+ try {
14
+ const mode = process.argv[process.argv.length -1];
15
+ const rigJson5 = json5.parse(fs.readFileSync('env.rig.json5'));
16
+ const modeObj = rigJson5[mode];
17
+ if (modeObj) {
18
+ const keysArray = Object.keys(modeObj);
19
+ let content = "";
20
+ for (let i = 0; i<keysArray.length; i++) {
21
+ const key = keysArray[i];
22
+ const value = modeObj[key];
23
+ content += key + " = " + value + "\n"
24
+ }
25
+ fs.writeFile('./.env.rig', content, {flag: "w"}, err => {
26
+ err && print.error(err);
27
+ });
28
+ } else {
29
+ print.error("请先在env.rig.json5文件中配置" + mode + "模式的环境变量");
30
+ }
31
+ } catch (e) {
32
+ print.error(e.message);
33
+ }
34
+ }
35
+
36
+ module.exports = {
37
+ load
38
+ }
package/lib/init/index.js CHANGED
@@ -43,6 +43,27 @@ const load = async (cmd) => {
43
43
  console.log(chalk.green('create package.rig.json5'));
44
44
  fs.writeFileSync('./package.rig.json5', template);
45
45
  }
46
+ if (fs.existsSync('rig_helper.js')){
47
+ console.log(chalk.green('rig_helper.js already exists~'));
48
+ }else{
49
+ let rigHelper = `const json5 = require('json5');
50
+ const fs = require('fs');
51
+ const getPkgs = () => {
52
+ let pkgArr = json5.parse(fs.readFileSync('./package.rig.json5'));
53
+ let flatPkgArr = pkgArr.map((item, index) => {
54
+ return item.name;
55
+ });
56
+ console.log(flatPkgArr);
57
+ return flatPkgArr;
58
+ }
59
+
60
+ module.exports = {
61
+ getPkgs
62
+ }
63
+ `
64
+ console.log(chalk.green('create rig_helper.js'));
65
+ fs.writeFileSync('./rig_helper.js', rigHelper);
66
+ }
46
67
  //检查rigs是否存在
47
68
  if (fs.existsSync('./rigs') && fs.lstatSync('./rigs').isDirectory()) {
48
69
  console.log(chalk.green('folder rigs already exists~'));
@@ -64,6 +85,7 @@ const load = async (cmd) => {
64
85
  let rigIgnoreStrArr = [
65
86
  'rigs/*',
66
87
  'rigs_dev/*',
88
+ '.env.rig',
67
89
  '!rigs/.gitkeep',
68
90
  '!rigs_dev/.gitkeep'
69
91
  ];
@@ -92,6 +114,9 @@ const load = async (cmd) => {
92
114
  scripts:{
93
115
  preinstall:"rig preinstall",
94
116
  postinstall:"rig postinstall",
117
+ },
118
+ devDependencies:{
119
+ json5:'2.1.3'
95
120
  }
96
121
  }
97
122
  pkgJSON.private = inserted.private;
@@ -122,6 +147,12 @@ const load = async (cmd) => {
122
147
  } else {
123
148
  pkgJSON.scripts = inserted.scripts
124
149
  }
150
+ if (pkgJSON.devDependencies){
151
+ //TODO:可优化
152
+ pkgJSON.devDependencies.json5 = inserted.devDependencies.json5;
153
+ }else{
154
+ pkgJSON.devDependencies = inserted.devDependencies;
155
+ }
125
156
  fs.writeFileSync('package.json', JSON.stringify(pkgJSON,null,2));
126
157
  log(green('package.json updated'))
127
158
  } catch (e) {
@@ -20,9 +20,11 @@ const load = async (cmd) => {
20
20
  }
21
21
  let rootPath = shell.pwd().stdout;
22
22
  let rigJson5 = json5.parse(fs.readFileSync('package.rig.json5'));
23
+ console.log(rigJson5);
23
24
  let devDeps = [];
24
25
  for (let dep of rigJson5) {
25
26
  if (dep.dev) {
27
+ print.warn(`developing:${dep.name}`);
26
28
  devDeps.push(dep.name);
27
29
  if (fs.existsSync(`node_modules/${dep.name}`)) {
28
30
  shell.rm('-rf', `node_modules/${dep.name}`);
@@ -63,7 +63,7 @@ const validate = (rigJson5) => {
63
63
  }
64
64
  return isValidate;
65
65
  }
66
- const clone = (target,dep)=>{
66
+ const clone = (target, dep) => {
67
67
  print.info(`cloning ${dep.name}`);
68
68
  let cloneProcess = shell.exec(`git clone ${dep.source} ${target}/${dep.name}`,
69
69
  {silent: true}
@@ -108,7 +108,12 @@ const load = async (cmd) => {
108
108
  } else {
109
109
  //不是开发中状态,不处理,不去删除已下载的模块
110
110
  //预安装时在node_modules中要先清除json5里的库
111
- shell.rm('-rf', `node_modules/${dep.name}`);
111
+ if (fs.existsSync(`node_modules/${dep.name}`)) {
112
+ shell.rm('-rf', `node_modules/${dep.name}`);
113
+ }
114
+ if (fs.existsSync(`node_modules/.yarn-integrity`)) {
115
+ shell.rm('-rf', `node_modules/.yarn-integrity`);
116
+ }
112
117
  }
113
118
  dependencies[dep.name] = `git+ssh://${dep.source}#${dep.version}`
114
119
  }
package/lib/rig/index.js CHANGED
@@ -11,7 +11,7 @@ program.command('preinstall').action(require('../preinstall').load);
11
11
  program.command('postinstall').action(require('../postinstall').load);
12
12
  program.command('tag').action(require('../tag').load);
13
13
  program.command('info').action(require('../info').load);
14
+ program.option('-e, --env <env>', 'specify env').action(require('../env').load);
14
15
 
15
16
  program.version(require('../../package.json').version,'-v,--version');
16
17
  program.parse(process.argv);
17
-
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rigjs",
3
- "version": "1.0.25",
3
+ "version": "1.0.29",
4
4
  "description": "A multi-repos dev tool based on yarn and git.Rig is inspired by cocoapods. Not like those monorepo solutions,rig is a tool for organizing multi-repos.",
5
5
  "keywords": [
6
6
  "modular",
@@ -26,6 +26,7 @@
26
26
  "prei": "cd demo && node ../lib/rig/index.js preinstall",
27
27
  "posti": "cd demo && node ../lib/rig/index.js postinstall",
28
28
  "c": "d demo && node ../lib/rig/index.js check",
29
+ "envmake": "cd demo && node ../lib/rig/index.js --env prod_view_zhs",
29
30
  "t": "node lib/rig/index.js tag",
30
31
  "deliver": "npm publish --registry=https://registry.npmjs.org"
31
32
  },
package/production.png ADDED
Binary file