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 +6 -0
- package/README_CN.md +7 -1
- package/demo/package.json +5 -4
- package/demo/rig_helper.js +14 -0
- package/demo/yarn.lock +0 -25
- package/develop.png +0 -0
- package/lib/env/index.js +38 -0
- package/lib/init/index.js +31 -0
- package/lib/postinstall/index.js +2 -0
- package/lib/preinstall/index.js +7 -2
- package/lib/rig/index.js +1 -1
- package/package.json +2 -1
- package/production.png +0 -0
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
|
+

|
|
122
|
+

|
|
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
|
-
"
|
|
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
|
package/lib/env/index.js
ADDED
|
@@ -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) {
|
package/lib/postinstall/index.js
CHANGED
|
@@ -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}`);
|
package/lib/preinstall/index.js
CHANGED
|
@@ -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
|
-
|
|
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.
|
|
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
|