rigjs 1.0.27 → 1.0.30
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 +4 -0
- package/demo/test.js +17 -10
- package/demo/yarn.lock +0 -20
- package/lib/check/index.js +3 -1
- package/lib/deps/index.js +10 -0
- package/lib/env/index.js +38 -0
- package/lib/info/index.js +25 -25
- package/lib/init/index.js +1 -0
- package/lib/postinstall/index.js +2 -0
- package/lib/rig/index.js +1 -1
- package/package.json +2 -1
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
|
@@ -149,5 +149,9 @@ rig机制概括起来就是分库开发,整体构建。
|
|
|
149
149
|
使用package.json中的version打tag
|
|
150
150
|
//TODO:自动检查是否存在未提交代码。
|
|
151
151
|
|
|
152
|
+
### rig --env fp_test
|
|
153
|
+
该指令首先会在根目录下寻找名为'env.rig.json5'的文件,然后根据所传变量fp_test去该文件读取相应配置,
|
|
154
|
+
最后自动将该配置写入固定名称为".env.rig"的文件。注意:类似"fp_test"的变量为必传项。
|
|
155
|
+
|
|
152
156
|
###rig info
|
|
153
157
|
查看模块配置信息
|
package/demo/test.js
CHANGED
|
@@ -1,11 +1,18 @@
|
|
|
1
|
-
const fs = require('fs');
|
|
2
|
-
let pkgStr = fs.readFileSync('package.json').toString();
|
|
3
|
-
let pkg = JSON.parse(pkgStr);
|
|
4
|
-
console.log(pkg);
|
|
5
|
-
pkg.info = 'test';
|
|
6
|
-
// fs.('package.json');
|
|
7
|
-
fs.writeFileSync('package.json', JSON.stringify(pkg,null,2));
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
console.log(pkg);
|
|
1
|
+
// const fs = require('fs');
|
|
2
|
+
// let pkgStr = fs.readFileSync('package.json').toString();
|
|
3
|
+
// let pkg = JSON.parse(pkgStr);
|
|
4
|
+
// console.log(pkg);
|
|
5
|
+
// pkg.info = 'test';
|
|
6
|
+
// // fs.('package.json');
|
|
7
|
+
// fs.writeFileSync('package.json', JSON.stringify(pkg,null,2));
|
|
8
|
+
// pkgStr = fs.readFileSync('package.json').toString();
|
|
9
|
+
// pkg = JSON.parse(pkgStr);
|
|
10
|
+
// console.log(pkg);
|
|
11
|
+
//
|
|
12
|
+
console.log(/^([a-z]+-){1,3}([0-9]+)(\.([0-9]+)){3}$/.test('a-a-1.2.1.1'));
|
|
13
|
+
//cmd
|
|
14
|
+
// console.log(/^(\.([0-9]+)){3}$/.test('a-a-1.2.1.1'));
|
|
15
|
+
console.log('a-a-1.2.1.1'.split(/(?<=[a-z])-(?=[0-9])/));
|
|
16
|
+
|
|
17
|
+
//抓取版本
|
|
11
18
|
|
package/demo/yarn.lock
CHANGED
|
@@ -1,20 +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.4"
|
|
7
|
-
resolved "https://registry.npm.taobao.org/dayjs/download/dayjs-1.9.4.tgz?cache=0&sync_timestamp=1603435778328&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdayjs%2Fdownload%2Fdayjs-1.9.4.tgz#fcde984e227f4296f04e7b05720adad2e1071f1b"
|
|
8
|
-
integrity sha1-/N6YTiJ/QpbwTnsFcgra0uEHHxs=
|
|
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
|
-
"r-foundation@git+ssh://git@git.rys.cn:f2e-common/r-foundation.git#1.0.1":
|
|
16
|
-
version "1.0.0"
|
|
17
|
-
resolved "git+ssh://git@git.rys.cn:f2e-common/r-foundation.git#ea22c1bcb7b84b2e5ea52683c36aaad73ef26100"
|
|
18
|
-
dependencies:
|
|
19
|
-
dayjs "^1.8.30"
|
|
20
|
-
lodash "^4.17.19"
|
package/lib/check/index.js
CHANGED
|
@@ -14,12 +14,14 @@ const load = async () => {
|
|
|
14
14
|
try {
|
|
15
15
|
let rigJson5Str = fs.readFileSync('package.rig.json5');
|
|
16
16
|
let rigJson5 = json5.parse(rigJson5Str);
|
|
17
|
+
let hasErr = false;
|
|
17
18
|
for (let dep of rigJson5) {
|
|
18
19
|
if (dep.dev) {
|
|
20
|
+
hasErr = true;
|
|
19
21
|
print.error(`${dep.name} is in developing!\nUse correct version and set dev to false!`);
|
|
20
|
-
process.exit(1);
|
|
21
22
|
}
|
|
22
23
|
}
|
|
24
|
+
if (hasErr) process.exit(1);
|
|
23
25
|
print.succeed(`Ready for production!`);
|
|
24
26
|
} catch (e) {
|
|
25
27
|
print.error(e.message);
|
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/info/index.js
CHANGED
|
@@ -9,34 +9,34 @@ const fs = require('fs');
|
|
|
9
9
|
const json5 = require('json5');
|
|
10
10
|
const print = require('../print');
|
|
11
11
|
//加载命令控制器
|
|
12
|
-
const info = ()=>{
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
12
|
+
const info = () => {
|
|
13
|
+
print.info(`start checking modules`);
|
|
14
|
+
let rigJson5 = json5.parse(fs.readFileSync('package.rig.json5'));
|
|
15
|
+
for (let dep of rigJson5) {
|
|
16
|
+
let describeProcess = shell.exec(`git ls-remote --tags --refs --sort="version:refname" ${dep.source} | awk -F/ 'END{print$NF}'`,
|
|
17
|
+
{silent: true}
|
|
18
|
+
);
|
|
19
|
+
let remoteLatestTag = describeProcess.stdout.trim();
|
|
20
|
+
if (dep.dev) {
|
|
21
|
+
print.warn(`[${dep.name}] is in developing.latest:${remoteLatestTag},`);
|
|
22
|
+
} else {
|
|
23
|
+
if (remoteLatestTag) {
|
|
24
|
+
if (dep.version === remoteLatestTag) {
|
|
25
|
+
print.info(`[${dep.name}] using:${dep.version},latest:${remoteLatestTag}`);
|
|
26
|
+
} else {
|
|
27
|
+
print.warn(`[${dep.name}] using:${dep.version},latest:${remoteLatestTag},Please confirm before updating!!!`);
|
|
28
|
+
}
|
|
29
|
+
} else {
|
|
30
|
+
print.error(`Get latest tag of ${dep.name} failed!Error:${describeProcess.stderr}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
34
|
|
|
35
35
|
}
|
|
36
36
|
const load = async (cmd) => {
|
|
37
|
-
|
|
37
|
+
info();
|
|
38
38
|
}
|
|
39
39
|
module.exports = {
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
load,
|
|
41
|
+
info,
|
|
42
42
|
}
|
package/lib/init/index.js
CHANGED
package/lib/postinstall/index.js
CHANGED
|
@@ -23,6 +23,7 @@ const load = async (cmd) => {
|
|
|
23
23
|
console.log(rigJson5);
|
|
24
24
|
let devDeps = [];
|
|
25
25
|
for (let dep of rigJson5) {
|
|
26
|
+
|
|
26
27
|
if (dep.dev) {
|
|
27
28
|
print.warn(`developing:${dep.name}`);
|
|
28
29
|
devDeps.push(dep.name);
|
|
@@ -35,6 +36,7 @@ const load = async (cmd) => {
|
|
|
35
36
|
'dir'
|
|
36
37
|
);
|
|
37
38
|
}
|
|
39
|
+
//TODO:检查依赖间的版本号要求
|
|
38
40
|
}
|
|
39
41
|
info.info();
|
|
40
42
|
print.succeed(`postinstall SUCCEED!`);
|
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.30",
|
|
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
|
},
|