@tarojs/rn-runner 3.3.15 → 3.3.19
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/dist/config/conditional-file-store.js +65 -10
- package/dist/config/conditional-file-store.js.map +1 -1
- package/dist/config/preview.js +102 -0
- package/dist/config/preview.js.map +1 -0
- package/dist/index.js +17 -27
- package/dist/index.js.map +1 -1
- package/dist/utils.js +28 -0
- package/dist/utils.js.map +1 -0
- package/package.json +7 -6
- package/src/config/conditional-file-store.ts +5 -4
- package/src/config/preview.ts +113 -0
- package/src/index.ts +12 -22
- package/src/utils.ts +25 -0
|
@@ -1,4 +1,40 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
2
38
|
var __values = (this && this.__values) || function(o) {
|
|
3
39
|
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
4
40
|
if (m) return m.call(o);
|
|
@@ -20,6 +56,8 @@ var ConditionalFileStore = /** @class */ (function () {
|
|
|
20
56
|
}
|
|
21
57
|
ConditionalFileStore.prototype.isEntryCache = function (cacheItem) {
|
|
22
58
|
var e_1, _a;
|
|
59
|
+
if (!cacheItem)
|
|
60
|
+
return false;
|
|
23
61
|
var dependencies = cacheItem.dependencies;
|
|
24
62
|
if (!dependencies || !dependencies.length) {
|
|
25
63
|
return false;
|
|
@@ -42,19 +80,36 @@ var ConditionalFileStore = /** @class */ (function () {
|
|
|
42
80
|
return false;
|
|
43
81
|
};
|
|
44
82
|
ConditionalFileStore.prototype.get = function (key) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
return
|
|
48
|
-
|
|
49
|
-
|
|
83
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
84
|
+
var result;
|
|
85
|
+
return __generator(this, function (_a) {
|
|
86
|
+
switch (_a.label) {
|
|
87
|
+
case 0: return [4 /*yield*/, this._fileStore.get(key)];
|
|
88
|
+
case 1:
|
|
89
|
+
result = _a.sent();
|
|
90
|
+
if (result && this.ignoreEntryFileCache && this.isEntryCache(result)) {
|
|
91
|
+
return [2 /*return*/, null];
|
|
92
|
+
}
|
|
93
|
+
return [2 /*return*/, result];
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
});
|
|
50
97
|
};
|
|
51
98
|
ConditionalFileStore.prototype.set = function (key, value) {
|
|
52
99
|
var _a, _b, _c, _d, _e;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
100
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
101
|
+
return __generator(this, function (_f) {
|
|
102
|
+
switch (_f.label) {
|
|
103
|
+
case 0:
|
|
104
|
+
// fix: 样式文件不写缓存
|
|
105
|
+
if (((_e = (_d = (_c = (_b = (_a = value === null || value === void 0 ? void 0 : value.output) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.functionMap) === null || _d === void 0 ? void 0 : _d.names) === null || _e === void 0 ? void 0 : _e.indexOf('ignoreStyleFileCache')) > -1) {
|
|
106
|
+
return [2 /*return*/];
|
|
107
|
+
}
|
|
108
|
+
return [4 /*yield*/, this._fileStore.set(key, value)];
|
|
109
|
+
case 1: return [2 /*return*/, _f.sent()];
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
});
|
|
58
113
|
};
|
|
59
114
|
ConditionalFileStore.prototype.clear = function () {
|
|
60
115
|
this._fileStore.clear();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditional-file-store.js","sourceRoot":"","sources":["../../src/config/conditional-file-store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"conditional-file-store.js","sourceRoot":"","sources":["../../src/config/conditional-file-store.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4DAA6D;AAE7D;IAKE,8BAAa,OAAY,EAAE,SAAkB;QAJ7C,yBAAoB,GAAG,KAAK,CAAA;QAK1B,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAI,OAAO,CAAC,CAAA;QAC3C,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,KAAK,CAAA;IACrC,CAAC;IAED,2CAAY,GAAZ,UAAc,SAAS;;QACrB,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAA;QACpB,IAAA,YAAY,GAAK,SAAS,aAAd,CAAc;QAClC,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;YACzC,OAAO,KAAK,CAAA;SACb;;YAED,KAAgB,IAAA,iBAAA,SAAA,YAAY,CAAA,0CAAA,oEAAE;gBAAzB,IAAM,CAAC,yBAAA;gBACV,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAI,IAAI,CAAC,SAAS,YAAS,CAAC,EAAE;oBAC/C,OAAO,IAAI,CAAA;iBACZ;aACF;;;;;;;;;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAEK,kCAAG,GAAT,UAAW,GAAW;;;;;4BACL,qBAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAA;;wBAAvC,MAAM,GAAG,SAA8B;wBAC7C,IAAI,MAAM,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;4BACpE,sBAAO,IAAI,EAAA;yBACZ;wBACD,sBAAO,MAAM,EAAA;;;;KACd;IAEK,kCAAG,GAAT,UAAW,GAAW,EAAE,KAAU;;;;;;wBAChC,gBAAgB;wBAChB,IAAI,CAAA,MAAA,MAAA,MAAA,MAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,0CAAG,CAAC,CAAC,0CAAE,IAAI,0CAAE,WAAW,0CAAE,KAAK,0CAAE,OAAO,CAAC,sBAAsB,CAAC,IAAG,CAAC,CAAC,EAAE;4BACtF,sBAAM;yBACP;wBACM,qBAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,EAAA;4BAA5C,sBAAO,SAAqC,EAAA;;;;KAC7C;IAED,oCAAK,GAAL;QACE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;IACzB,CAAC;IACH,2BAAC;AAAD,CAAC,AA5CD,IA4CC"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var mime = require("mime-types");
|
|
4
|
+
var http_1 = require("http");
|
|
5
|
+
var fs_1 = require("fs");
|
|
6
|
+
var qrcode_terminal_1 = require("qrcode-terminal");
|
|
7
|
+
var utils_1 = require("../utils");
|
|
8
|
+
var url_1 = require("url");
|
|
9
|
+
var path_1 = require("path");
|
|
10
|
+
var drawableFileTypes = new Set([
|
|
11
|
+
'gif',
|
|
12
|
+
'jpeg',
|
|
13
|
+
'jpg',
|
|
14
|
+
'png',
|
|
15
|
+
'webp',
|
|
16
|
+
'xml'
|
|
17
|
+
]);
|
|
18
|
+
function getAndroidAssetSuffix(scale) {
|
|
19
|
+
switch (scale) {
|
|
20
|
+
case 0.75:
|
|
21
|
+
return 'ldpi';
|
|
22
|
+
case 1:
|
|
23
|
+
return 'mdpi';
|
|
24
|
+
case 1.5:
|
|
25
|
+
return 'hdpi';
|
|
26
|
+
case 2:
|
|
27
|
+
return 'xhdpi';
|
|
28
|
+
case 3:
|
|
29
|
+
return 'xxhdpi';
|
|
30
|
+
case 4:
|
|
31
|
+
return 'xxxhdpi';
|
|
32
|
+
default:
|
|
33
|
+
return '';
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function getAndroidResourceFolderName(pathname) {
|
|
37
|
+
var ext = path_1.extname(pathname).replace(/^./, '').toLowerCase();
|
|
38
|
+
if (!drawableFileTypes.has(ext)) {
|
|
39
|
+
return 'raw';
|
|
40
|
+
}
|
|
41
|
+
var suffix = getAndroidAssetSuffix(1); // TODO: auto scale
|
|
42
|
+
var androidFolder = "drawable-" + suffix;
|
|
43
|
+
return androidFolder;
|
|
44
|
+
}
|
|
45
|
+
function getAndroidResourceIdentifier(pathname) {
|
|
46
|
+
if (pathname[0] === '/') {
|
|
47
|
+
pathname = pathname.substr(1);
|
|
48
|
+
}
|
|
49
|
+
var ext = path_1.extname(pathname).toLowerCase();
|
|
50
|
+
var extReg = new RegExp(ext + '$');
|
|
51
|
+
return pathname
|
|
52
|
+
.replace(extReg, '')
|
|
53
|
+
.toLowerCase()
|
|
54
|
+
.replace(/\//g, '_')
|
|
55
|
+
.replace(/([^a-z0-9_])/g, '')
|
|
56
|
+
.replace(/^assets_/, '') + ext;
|
|
57
|
+
}
|
|
58
|
+
exports.default = (function (opt) {
|
|
59
|
+
var port = process.env.PORT || 8079;
|
|
60
|
+
var host = "http://" + utils_1.getOpenHost() + ":" + port;
|
|
61
|
+
http_1.createServer(function (request, response) {
|
|
62
|
+
var url = new url_1.URL(request.url || '', host);
|
|
63
|
+
console.log(request.method + " " + request.url);
|
|
64
|
+
if (url.pathname === '/inspector/device') {
|
|
65
|
+
response.writeHead(404);
|
|
66
|
+
response.end('404', 'utf-8');
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
var filePath;
|
|
70
|
+
var contentType = mime.lookup(url.pathname);
|
|
71
|
+
if (url.pathname === '/index.js') {
|
|
72
|
+
filePath = opt.out;
|
|
73
|
+
}
|
|
74
|
+
else if (opt.platform === 'ios') {
|
|
75
|
+
filePath = path_1.join(opt.assetsDest || '', url.pathname);
|
|
76
|
+
}
|
|
77
|
+
else if (opt.platform === 'android') {
|
|
78
|
+
filePath = path_1.join(opt.assetsDest || '', getAndroidResourceFolderName(url.pathname), getAndroidResourceIdentifier(url.pathname));
|
|
79
|
+
}
|
|
80
|
+
fs_1.readFile(filePath, function (error, content) {
|
|
81
|
+
if (error) {
|
|
82
|
+
if (error.code === 'ENOENT') {
|
|
83
|
+
response.writeHead(404);
|
|
84
|
+
response.end('404', 'utf-8');
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
response.writeHead(500);
|
|
88
|
+
response.end('500', 'utf-8');
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
response.writeHead(200, { 'Content-Type': contentType });
|
|
93
|
+
response.end(content, 'utf-8');
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
}).listen(port);
|
|
97
|
+
var url = host + "/index.js";
|
|
98
|
+
console.log(utils_1.PLAYGROUNDINFO);
|
|
99
|
+
console.log("print qrcode of " + opt.platform + " bundle '" + url + "':");
|
|
100
|
+
qrcode_terminal_1.generate(url, { small: true });
|
|
101
|
+
});
|
|
102
|
+
//# sourceMappingURL=preview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preview.js","sourceRoot":"","sources":["../../src/config/preview.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -50,11 +50,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
50
50
|
var Metro = require("metro");
|
|
51
51
|
var config_1 = require("./config");
|
|
52
52
|
var config_holder_1 = require("./config/config-holder");
|
|
53
|
+
var utils_1 = require("./utils");
|
|
54
|
+
var preview_1 = require("./config/preview");
|
|
53
55
|
var helper_1 = require("@tarojs/helper");
|
|
54
56
|
var path = require("path");
|
|
55
57
|
var fse = require("fs-extra");
|
|
56
58
|
var url = require("url");
|
|
57
|
-
var os_1 = require("os");
|
|
58
59
|
var qrcode_terminal_1 = require("qrcode-terminal");
|
|
59
60
|
var readline = require("readline");
|
|
60
61
|
var cli_server_api_1 = require("@react-native-community/cli-server-api");
|
|
@@ -122,32 +123,12 @@ function getOutputSourceMapOption(config) {
|
|
|
122
123
|
sourcemapSourcesRoot: sourcemapSourcesRoot
|
|
123
124
|
};
|
|
124
125
|
}
|
|
125
|
-
function getOpenHost() {
|
|
126
|
-
var _a;
|
|
127
|
-
var result;
|
|
128
|
-
var interfaces = os_1.networkInterfaces();
|
|
129
|
-
for (var devName in interfaces) {
|
|
130
|
-
var isEnd = (_a = interfaces[devName]) === null || _a === void 0 ? void 0 : _a.some(function (item) {
|
|
131
|
-
// 取IPv4, 不为127.0.0.1的内网ip
|
|
132
|
-
if (item.family === 'IPv4' && item.address !== '127.0.0.1' && !item.internal) {
|
|
133
|
-
result = item.address;
|
|
134
|
-
return true;
|
|
135
|
-
}
|
|
136
|
-
return false;
|
|
137
|
-
});
|
|
138
|
-
// 若获取到ip, 结束遍历
|
|
139
|
-
if (isEnd) {
|
|
140
|
-
break;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
return result;
|
|
144
|
-
}
|
|
145
126
|
// TODO: 返回值
|
|
146
127
|
// HttpServer | {code: string, map: string}
|
|
147
128
|
// IBuildConfig
|
|
148
129
|
function build(appPath, config) {
|
|
149
130
|
return __awaiter(this, void 0, void 0, function () {
|
|
150
|
-
var entry, metroConfig, sourceRoot, commonOptions, onFinish, _a, middleware_1, attachToServer_1,
|
|
131
|
+
var entry, metroConfig, sourceRoot, commonOptions, onFinish, _a, middleware_1, attachToServer_1, options_1, savedBuildFunc_1, server, sourceMapOption, requestOptions, bundle, outputOptions, outputAssets, assetsDest_1, e_1;
|
|
151
132
|
var _this = this;
|
|
152
133
|
return __generator(this, function (_b) {
|
|
153
134
|
switch (_b.label) {
|
|
@@ -235,9 +216,10 @@ function build(appPath, config) {
|
|
|
235
216
|
}
|
|
236
217
|
});
|
|
237
218
|
if (config.qr) {
|
|
238
|
-
var host = getOpenHost();
|
|
219
|
+
var host = utils_1.getOpenHost();
|
|
239
220
|
if (host) {
|
|
240
221
|
var url_1 = "taro://" + host + ":" + metroConfig.server.port;
|
|
222
|
+
console.log(utils_1.PLAYGROUNDINFO);
|
|
241
223
|
console.log("print qrcode of '" + url_1 + "':");
|
|
242
224
|
qrcode_terminal_1.generate(url_1, { small: true });
|
|
243
225
|
}
|
|
@@ -251,7 +233,7 @@ function build(appPath, config) {
|
|
|
251
233
|
onFinish(e);
|
|
252
234
|
})];
|
|
253
235
|
case 2:
|
|
254
|
-
|
|
236
|
+
options_1 = __assign(__assign({}, commonOptions), { entry: './index', out: concatOutputFileName(config) });
|
|
255
237
|
savedBuildFunc_1 = outputBundle.build;
|
|
256
238
|
outputBundle.build = function (packagerClient, requestOptions) { return __awaiter(_this, void 0, void 0, function () {
|
|
257
239
|
var resolutionFn;
|
|
@@ -270,11 +252,11 @@ function build(appPath, config) {
|
|
|
270
252
|
_b.label = 3;
|
|
271
253
|
case 3:
|
|
272
254
|
_b.trys.push([3, 8, 9, 10]);
|
|
273
|
-
requestOptions = __assign(__assign(__assign({}, commonOptions), sourceMapOption), { entryFile:
|
|
255
|
+
requestOptions = __assign(__assign(__assign({}, commonOptions), sourceMapOption), { entryFile: options_1.entry, inlineSourceMap: false, createModuleIdFactory: metroConfig.serializer.createModuleIdFactory });
|
|
274
256
|
return [4 /*yield*/, outputBundle.build(server, requestOptions)];
|
|
275
257
|
case 4:
|
|
276
258
|
bundle = _b.sent();
|
|
277
|
-
outputOptions = __assign(__assign(__assign({}, commonOptions), sourceMapOption), { bundleOutput:
|
|
259
|
+
outputOptions = __assign(__assign(__assign({}, commonOptions), sourceMapOption), { bundleOutput: options_1.out });
|
|
278
260
|
return [4 /*yield*/, outputBundle.save(bundle, outputOptions, console.log)
|
|
279
261
|
// Save the assets of the bundle
|
|
280
262
|
];
|
|
@@ -283,7 +265,15 @@ function build(appPath, config) {
|
|
|
283
265
|
return [4 /*yield*/, server.getAssets(__assign(__assign({}, Server.DEFAULT_BUNDLE_OPTIONS), requestOptions))];
|
|
284
266
|
case 6:
|
|
285
267
|
outputAssets = _b.sent();
|
|
286
|
-
|
|
268
|
+
assetsDest_1 = concatOutputAssetsDest(config);
|
|
269
|
+
return [4 /*yield*/, saveAssets_1.default(outputAssets, options_1.platform, assetsDest_1).then(function () {
|
|
270
|
+
if (config.qr) {
|
|
271
|
+
preview_1.default({
|
|
272
|
+
out: options_1.out,
|
|
273
|
+
assetsDest: assetsDest_1,
|
|
274
|
+
platform: options_1.platform
|
|
275
|
+
});
|
|
276
|
+
}
|
|
287
277
|
onFinish(null);
|
|
288
278
|
})];
|
|
289
279
|
case 7: return [2 /*return*/, _b.sent()];
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6BAA8B;AAC9B,mCAAqC;AACrC,wDAAyD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PLAYGROUNDINFO = exports.PLAYGROUNDREPO = exports.getOpenHost = void 0;
|
|
4
|
+
var os_1 = require("os");
|
|
5
|
+
function getOpenHost() {
|
|
6
|
+
var _a;
|
|
7
|
+
var result;
|
|
8
|
+
var interfaces = os_1.networkInterfaces();
|
|
9
|
+
for (var devName in interfaces) {
|
|
10
|
+
var isEnd = (_a = interfaces[devName]) === null || _a === void 0 ? void 0 : _a.some(function (item) {
|
|
11
|
+
// 取IPv4, 不为127.0.0.1的内网ip
|
|
12
|
+
if (item.family === 'IPv4' && item.address !== '127.0.0.1' && !item.internal) {
|
|
13
|
+
result = item.address;
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
return false;
|
|
17
|
+
});
|
|
18
|
+
// 若获取到ip, 结束遍历
|
|
19
|
+
if (isEnd) {
|
|
20
|
+
break;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return result;
|
|
24
|
+
}
|
|
25
|
+
exports.getOpenHost = getOpenHost;
|
|
26
|
+
exports.PLAYGROUNDREPO = 'https://github.com/wuba/taro-playground';
|
|
27
|
+
exports.PLAYGROUNDINFO = "use [Taro Playground App](" + exports.PLAYGROUNDREPO + ") to scan";
|
|
28
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAAA,yBAAsC;AAEtC,SAAgB,WAAW;;IACzB,IAAI,MAAM,CAAA;IACV,IAAM,UAAU,GAAG,sBAAiB,EAAE,CAAA;IACtC,KAAK,IAAM,OAAO,IAAI,UAAU,EAAE;QAChC,IAAM,KAAK,GAAG,MAAA,UAAU,CAAC,OAAO,CAAC,0CAAE,IAAI,CAAC,UAAA,IAAI;YAC1C,0BAA0B;YAC1B,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAC5E,MAAM,GAAG,IAAI,CAAC,OAAO,CAAA;gBACrB,OAAO,IAAI,CAAA;aACZ;YACD,OAAO,KAAK,CAAA;QACd,CAAC,CAAC,CAAA;QACF,eAAe;QACf,IAAI,KAAK,EAAE;YACT,MAAK;SACN;KACF;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAlBD,kCAkBC;AAEY,QAAA,cAAc,GAAG,yCAAyC,CAAA;AAE1D,QAAA,cAAc,GAAG,+BAA6B,sBAAc,cAAW,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tarojs/rn-runner",
|
|
3
|
-
"version": "3.3.
|
|
3
|
+
"version": "3.3.19",
|
|
4
4
|
"description": "ReactNative build tool for taro",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"repository": {
|
|
@@ -32,10 +32,10 @@
|
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@react-native-community/cli": "^5.0.1",
|
|
34
34
|
"@react-native-community/cli-server-api": "^5.0.1",
|
|
35
|
-
"@tarojs/helper": "3.3.
|
|
36
|
-
"@tarojs/rn-style-transformer": "3.3.
|
|
37
|
-
"@tarojs/rn-supporter": "3.3.
|
|
38
|
-
"@tarojs/rn-transformer": "3.3.
|
|
35
|
+
"@tarojs/helper": "3.3.19",
|
|
36
|
+
"@tarojs/rn-style-transformer": "3.3.19",
|
|
37
|
+
"@tarojs/rn-supporter": "3.3.19",
|
|
38
|
+
"@tarojs/rn-transformer": "3.3.19",
|
|
39
39
|
"fs-extra": "^9.0.1",
|
|
40
40
|
"lodash": "^4.17.4",
|
|
41
41
|
"metro": "^0.66.2",
|
|
@@ -44,7 +44,8 @@
|
|
|
44
44
|
"metro-core": "^0.66.2",
|
|
45
45
|
"metro-react-native-babel-transformer": "^0.66.2",
|
|
46
46
|
"metro-resolver": "^0.66.2",
|
|
47
|
+
"mime-types": "^2.1.27",
|
|
47
48
|
"qrcode-terminal": "^0.12.0"
|
|
48
49
|
},
|
|
49
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "e5152ac3ba4c46d5cc7af3c27a1e98ce73c2af17"
|
|
50
51
|
}
|
|
@@ -11,6 +11,7 @@ export default class ConditionalFileStore<T> {
|
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
isEntryCache (cacheItem): boolean {
|
|
14
|
+
if (!cacheItem) return false
|
|
14
15
|
const { dependencies } = cacheItem
|
|
15
16
|
if (!dependencies || !dependencies.length) {
|
|
16
17
|
return false
|
|
@@ -24,20 +25,20 @@ export default class ConditionalFileStore<T> {
|
|
|
24
25
|
return false
|
|
25
26
|
}
|
|
26
27
|
|
|
27
|
-
get (key: Buffer): T | null {
|
|
28
|
-
const result = this._fileStore.get(key)
|
|
28
|
+
async get (key: Buffer): Promise<T | null> {
|
|
29
|
+
const result = await this._fileStore.get(key)
|
|
29
30
|
if (result && this.ignoreEntryFileCache && this.isEntryCache(result)) {
|
|
30
31
|
return null
|
|
31
32
|
}
|
|
32
33
|
return result
|
|
33
34
|
}
|
|
34
35
|
|
|
35
|
-
set (key: Buffer, value: any): void {
|
|
36
|
+
async set (key: Buffer, value: any): Promise<void> {
|
|
36
37
|
// fix: 样式文件不写缓存
|
|
37
38
|
if (value?.output?.[0]?.data?.functionMap?.names?.indexOf('ignoreStyleFileCache') > -1) {
|
|
38
39
|
return
|
|
39
40
|
}
|
|
40
|
-
this._fileStore.set(key, value)
|
|
41
|
+
return await this._fileStore.set(key, value)
|
|
41
42
|
}
|
|
42
43
|
|
|
43
44
|
clear (): void {
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import * as mime from 'mime-types'
|
|
2
|
+
import { createServer } from 'http'
|
|
3
|
+
import { readFile } from 'fs'
|
|
4
|
+
import { generate } from 'qrcode-terminal'
|
|
5
|
+
import { getOpenHost, PLAYGROUNDINFO } from '../utils'
|
|
6
|
+
import { URL } from 'url'
|
|
7
|
+
import { join, extname } from 'path'
|
|
8
|
+
|
|
9
|
+
interface PreviewOption {
|
|
10
|
+
out: string
|
|
11
|
+
platform: string
|
|
12
|
+
assetsDest?: string
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const drawableFileTypes = new Set<string>([
|
|
16
|
+
'gif',
|
|
17
|
+
'jpeg',
|
|
18
|
+
'jpg',
|
|
19
|
+
'png',
|
|
20
|
+
'webp',
|
|
21
|
+
'xml'
|
|
22
|
+
])
|
|
23
|
+
|
|
24
|
+
function getAndroidAssetSuffix (scale: number): string {
|
|
25
|
+
switch (scale) {
|
|
26
|
+
case 0.75:
|
|
27
|
+
return 'ldpi'
|
|
28
|
+
case 1:
|
|
29
|
+
return 'mdpi'
|
|
30
|
+
case 1.5:
|
|
31
|
+
return 'hdpi'
|
|
32
|
+
case 2:
|
|
33
|
+
return 'xhdpi'
|
|
34
|
+
case 3:
|
|
35
|
+
return 'xxhdpi'
|
|
36
|
+
case 4:
|
|
37
|
+
return 'xxxhdpi'
|
|
38
|
+
default:
|
|
39
|
+
return ''
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function getAndroidResourceFolderName (pathname:string): string {
|
|
44
|
+
const ext = extname(pathname).replace(/^./, '').toLowerCase()
|
|
45
|
+
if (!drawableFileTypes.has(ext)) {
|
|
46
|
+
return 'raw'
|
|
47
|
+
}
|
|
48
|
+
const suffix = getAndroidAssetSuffix(1) // TODO: auto scale
|
|
49
|
+
const androidFolder = `drawable-${suffix}`
|
|
50
|
+
return androidFolder
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function getAndroidResourceIdentifier (pathname:string): string {
|
|
54
|
+
if (pathname[0] === '/') {
|
|
55
|
+
pathname = pathname.substr(1)
|
|
56
|
+
}
|
|
57
|
+
const ext = extname(pathname).toLowerCase()
|
|
58
|
+
const extReg = new RegExp(ext + '$')
|
|
59
|
+
return pathname
|
|
60
|
+
.replace(extReg, '')
|
|
61
|
+
.toLowerCase()
|
|
62
|
+
.replace(/\//g, '_')
|
|
63
|
+
.replace(/([^a-z0-9_])/g, '')
|
|
64
|
+
.replace(/^assets_/, '') + ext
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export default (opt: PreviewOption):void => {
|
|
68
|
+
const port = process.env.PORT || 8079
|
|
69
|
+
const host = `http://${getOpenHost()}:${port}`
|
|
70
|
+
|
|
71
|
+
createServer(function (request, response) {
|
|
72
|
+
const url = new URL(request.url || '', host)
|
|
73
|
+
|
|
74
|
+
console.log(`${request.method} ${request.url}`)
|
|
75
|
+
|
|
76
|
+
if (url.pathname === '/inspector/device') {
|
|
77
|
+
response.writeHead(404)
|
|
78
|
+
response.end('404', 'utf-8')
|
|
79
|
+
return
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
let filePath
|
|
83
|
+
const contentType = mime.lookup(url.pathname)
|
|
84
|
+
|
|
85
|
+
if (url.pathname === '/index.js') {
|
|
86
|
+
filePath = opt.out
|
|
87
|
+
} else if (opt.platform === 'ios') {
|
|
88
|
+
filePath = join(opt.assetsDest || '', url.pathname)
|
|
89
|
+
} else if (opt.platform === 'android') {
|
|
90
|
+
filePath = join(opt.assetsDest || '', getAndroidResourceFolderName(url.pathname), getAndroidResourceIdentifier(url.pathname))
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
readFile(filePath, function (error, content) {
|
|
94
|
+
if (error) {
|
|
95
|
+
if (error.code === 'ENOENT') {
|
|
96
|
+
response.writeHead(404)
|
|
97
|
+
response.end('404', 'utf-8')
|
|
98
|
+
} else {
|
|
99
|
+
response.writeHead(500)
|
|
100
|
+
response.end('500', 'utf-8')
|
|
101
|
+
}
|
|
102
|
+
} else {
|
|
103
|
+
response.writeHead(200, { 'Content-Type': contentType })
|
|
104
|
+
response.end(content, 'utf-8')
|
|
105
|
+
}
|
|
106
|
+
})
|
|
107
|
+
}).listen(port)
|
|
108
|
+
|
|
109
|
+
const url = `${host}/index.js`
|
|
110
|
+
console.log(PLAYGROUNDINFO)
|
|
111
|
+
console.log(`print qrcode of ${opt.platform} bundle '${url}':`)
|
|
112
|
+
generate(url, { small: true })
|
|
113
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import * as Metro from 'metro'
|
|
2
2
|
import getMetroConfig from './config'
|
|
3
3
|
import { getRNConfigEntry } from './config/config-holder'
|
|
4
|
+
import { getOpenHost, PLAYGROUNDINFO } from './utils'
|
|
5
|
+
import preview from './config/preview'
|
|
4
6
|
|
|
5
7
|
import { PLATFORMS } from '@tarojs/helper'
|
|
6
8
|
import * as path from 'path'
|
|
7
9
|
import * as fse from 'fs-extra'
|
|
8
10
|
import * as url from 'url'
|
|
9
|
-
import { networkInterfaces } from 'os'
|
|
10
11
|
import { generate } from 'qrcode-terminal'
|
|
11
12
|
|
|
12
13
|
import * as readline from 'readline'
|
|
@@ -74,26 +75,6 @@ function getOutputSourceMapOption (config: any): Record<string, any> {
|
|
|
74
75
|
}
|
|
75
76
|
}
|
|
76
77
|
|
|
77
|
-
function getOpenHost () {
|
|
78
|
-
let result
|
|
79
|
-
const interfaces = networkInterfaces()
|
|
80
|
-
for (const devName in interfaces) {
|
|
81
|
-
const isEnd = interfaces[devName]?.some(item => {
|
|
82
|
-
// 取IPv4, 不为127.0.0.1的内网ip
|
|
83
|
-
if (item.family === 'IPv4' && item.address !== '127.0.0.1' && !item.internal) {
|
|
84
|
-
result = item.address
|
|
85
|
-
return true
|
|
86
|
-
}
|
|
87
|
-
return false
|
|
88
|
-
})
|
|
89
|
-
// 若获取到ip, 结束遍历
|
|
90
|
-
if (isEnd) {
|
|
91
|
-
break
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
return result
|
|
95
|
-
}
|
|
96
|
-
|
|
97
78
|
// TODO: 返回值
|
|
98
79
|
// HttpServer | {code: string, map: string}
|
|
99
80
|
// IBuildConfig
|
|
@@ -190,6 +171,7 @@ export default async function build (appPath: string, config: any): Promise<any>
|
|
|
190
171
|
const host = getOpenHost()
|
|
191
172
|
if (host) {
|
|
192
173
|
const url = `taro://${host}:${metroConfig.server.port}`
|
|
174
|
+
console.log(PLAYGROUNDINFO)
|
|
193
175
|
console.log(`print qrcode of '${url}':`)
|
|
194
176
|
generate(url, { small: true })
|
|
195
177
|
} else {
|
|
@@ -239,7 +221,15 @@ export default async function build (appPath: string, config: any): Promise<any>
|
|
|
239
221
|
...Server.DEFAULT_BUNDLE_OPTIONS,
|
|
240
222
|
...requestOptions
|
|
241
223
|
})
|
|
242
|
-
|
|
224
|
+
const assetsDest = concatOutputAssetsDest(config)
|
|
225
|
+
return await saveAssets(outputAssets, options.platform, assetsDest).then(() => {
|
|
226
|
+
if (config.qr) {
|
|
227
|
+
preview({
|
|
228
|
+
out: options.out,
|
|
229
|
+
assetsDest,
|
|
230
|
+
platform: options.platform
|
|
231
|
+
})
|
|
232
|
+
}
|
|
243
233
|
onFinish(null)
|
|
244
234
|
})
|
|
245
235
|
} catch (e) {
|
package/src/utils.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { networkInterfaces } from 'os'
|
|
2
|
+
|
|
3
|
+
export function getOpenHost () {
|
|
4
|
+
let result
|
|
5
|
+
const interfaces = networkInterfaces()
|
|
6
|
+
for (const devName in interfaces) {
|
|
7
|
+
const isEnd = interfaces[devName]?.some(item => {
|
|
8
|
+
// 取IPv4, 不为127.0.0.1的内网ip
|
|
9
|
+
if (item.family === 'IPv4' && item.address !== '127.0.0.1' && !item.internal) {
|
|
10
|
+
result = item.address
|
|
11
|
+
return true
|
|
12
|
+
}
|
|
13
|
+
return false
|
|
14
|
+
})
|
|
15
|
+
// 若获取到ip, 结束遍历
|
|
16
|
+
if (isEnd) {
|
|
17
|
+
break
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return result
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export const PLAYGROUNDREPO = 'https://github.com/wuba/taro-playground'
|
|
24
|
+
|
|
25
|
+
export const PLAYGROUNDINFO = `use [Taro Playground App](${PLAYGROUNDREPO}) to scan`
|