xhs-mp-compiler-cli 1.0.2 → 1.1.0-beta.0
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/bin/xhs-mp-cli-build.js +3 -3
- package/dist/bin/xhs-mp-cli-dev.js +9 -31
- package/dist/compiler.d.ts +76 -0
- package/dist/compiler.js +361 -0
- package/dist/compilerCP.js +175 -0
- package/dist/config/constant.config.d.ts +7 -0
- package/dist/config/constant.config.js +10 -0
- package/dist/dev-server/index.d.ts +2 -2
- package/dist/dev-server/index.js +7 -5
- package/dist/index.d.ts +1 -11
- package/dist/index.js +3 -112
- package/dist/packs/index.d.ts +14 -0
- package/dist/packs/index.js +31 -0
- package/dist/packs/mp-pack/index.d.ts +3 -0
- package/dist/packs/mp-pack/index.js +32 -0
- package/dist/packs/webpack/index.d.ts +3 -0
- package/dist/packs/webpack/index.js +92 -0
- package/dist/packs/webpack/webpack.d.ts +21 -0
- package/dist/packs/webpack/webpack.js +79 -0
- package/dist/{webpack-config/presets → presets}/babel.d.ts +3 -3
- package/dist/{webpack-config/presets → presets}/babel.js +13 -11
- package/dist/presets/common.d.ts +4 -0
- package/dist/presets/common.js +46 -0
- package/dist/presets/configs/minigame/assets/assetsEntryPlugin.d.ts +10 -0
- package/dist/presets/configs/minigame/assets/assetsEntryPlugin.js +46 -0
- package/dist/presets/configs/minigame/assets/index.d.ts +3 -0
- package/dist/presets/configs/minigame/assets/index.js +65 -0
- package/dist/presets/configs/minigame/service/index.d.ts +3 -0
- package/dist/presets/configs/minigame/service/index.js +34 -0
- package/dist/{webpack-config/presets/service/XhsResolveLimitPlugin.d.ts → presets/configs/minigame/service/resolveLimitPlugin.d.ts} +3 -3
- package/dist/presets/configs/minigame/service/resolveLimitPlugin.js +35 -0
- package/dist/presets/configs/minigame/service/serviceChunkPlugin.d.ts +9 -0
- package/dist/presets/configs/minigame/service/serviceChunkPlugin.js +69 -0
- package/dist/{webpack-config/presets/service/ServiceEntryPlugin.d.ts → presets/configs/minigame/service/serviceEntryPlugin.d.ts} +3 -1
- package/dist/presets/configs/minigame/service/serviceEntryPlugin.js +32 -0
- package/dist/presets/configs/miniprogram/assets/assetsEntryPlugin.d.ts +12 -0
- package/dist/presets/configs/miniprogram/assets/assetsEntryPlugin.js +132 -0
- package/dist/presets/configs/miniprogram/assets/index.d.ts +4 -0
- package/dist/presets/configs/miniprogram/assets/index.js +47 -0
- package/dist/presets/configs/miniprogram/render/component.d.ts +3 -0
- package/dist/presets/configs/miniprogram/render/component.js +47 -0
- package/dist/presets/configs/miniprogram/render/index.d.ts +5 -0
- package/dist/presets/configs/miniprogram/render/index.js +70 -0
- package/dist/presets/configs/miniprogram/render/render.d.ts +3 -0
- package/dist/presets/configs/miniprogram/render/render.js +49 -0
- package/dist/presets/configs/miniprogram/render/renderChunkPlugin.d.ts +8 -0
- package/dist/{webpack-config/presets/render/RenderChunkPlugin.js → presets/configs/miniprogram/render/renderChunkPlugin.js} +13 -8
- package/dist/presets/configs/miniprogram/render/sjsEntryPlugin.d.ts +15 -0
- package/dist/{webpack-config/presets/render/SjsEntryPlugin.js → presets/configs/miniprogram/render/sjsEntryPlugin.js} +24 -21
- package/dist/presets/configs/miniprogram/service/index.d.ts +5 -0
- package/dist/presets/configs/miniprogram/service/index.js +72 -0
- package/dist/presets/configs/miniprogram/service/resolveLimitPlugin.d.ts +8 -0
- package/dist/{webpack-config/presets/service/XhsResolveLimitPlugin.js → presets/configs/miniprogram/service/resolveLimitPlugin.js} +11 -10
- package/dist/presets/configs/miniprogram/service/serviceChunkPlugin.d.ts +9 -0
- package/dist/presets/configs/miniprogram/service/serviceChunkPlugin.js +65 -0
- package/dist/presets/index.d.ts +2 -0
- package/dist/presets/index.js +95 -0
- package/dist/presets/loaders/mg-entry-loader.js +27 -0
- package/dist/{webpack-config → presets}/loaders/mini-style-loader.js +13 -10
- package/dist/presets/loaders/mp-entry-loader.js +196 -0
- package/dist/{webpack-config → presets}/loaders/sjs-loader/index.js +0 -4
- package/dist/{webpack-config → presets}/loaders/wxss-loader.js +7 -6
- package/dist/presets/plugins/InjectorPlugin.d.ts +7 -0
- package/dist/presets/plugins/InjectorPlugin.js +14 -0
- package/dist/presets/prod.d.ts +4 -0
- package/dist/presets/prod.js +80 -0
- package/dist/types/index.d.ts +18 -6
- package/dist/utils/common.d.ts +2 -1
- package/dist/utils/common.js +7 -6
- package/dist/utils/const.d.ts +27 -0
- package/dist/utils/const.js +47 -0
- package/dist/{webpack-config/lib → utils}/css.js +6 -6
- package/dist/utils/getSuffixName.d.ts +3 -0
- package/dist/utils/getSuffixName.js +18 -0
- package/dist/{webpack-config/loaders/utils.d.ts → utils/loader-utils.d.ts} +2 -0
- package/dist/{webpack-config/loaders/utils.js → utils/loader-utils.js} +19 -1
- package/dist/utils/projectConfig.d.ts +1 -1
- package/dist/utils/projectConfig.js +2 -2
- package/dist/{webpack-config/lib → utils}/utils.js +2 -2
- package/package.json +10 -9
- package/dist/build/index.d.ts +0 -3
- package/dist/build/index.js +0 -22
- package/dist/globalData/SjsModule.d.ts +0 -32
- package/dist/globalData/SjsModule.js +0 -34
- package/dist/utils/combineExtJson.d.ts +0 -3
- package/dist/utils/combineExtJson.js +0 -74
- package/dist/utils/getCssSuffixName.d.ts +0 -1
- package/dist/utils/getCssSuffixName.js +0 -9
- package/dist/utils/getMlSuffixName.d.ts +0 -1
- package/dist/utils/getMlSuffixName.js +0 -6
- package/dist/utils/getPrefixName.d.ts +0 -1
- package/dist/utils/getPrefixName.js +0 -6
- package/dist/utils/transformAppJson.d.ts +0 -16
- package/dist/utils/transformAppJson.js +0 -199
- package/dist/utils/validateAppJson.d.ts +0 -4
- package/dist/utils/validateAppJson.js +0 -111
- package/dist/webpack-config/index.d.ts +0 -4
- package/dist/webpack-config/index.js +0 -41
- package/dist/webpack-config/lib/const.d.ts +0 -13
- package/dist/webpack-config/lib/const.js +0 -15
- package/dist/webpack-config/loaders/component-entry-loader.js +0 -31
- package/dist/webpack-config/loaders/component-entry-requirements-loader.js +0 -24
- package/dist/webpack-config/loaders/render-entry-loader.js +0 -50
- package/dist/webpack-config/loaders/service-entry-loader.d.ts +0 -1
- package/dist/webpack-config/loaders/service-entry-loader.js +0 -51
- package/dist/webpack-config/plugins/VueLoaderPlugin.d.ts +0 -19
- package/dist/webpack-config/plugins/VueLoaderPlugin.js +0 -205
- package/dist/webpack-config/plugins/XhsMpErrorTransformPlugin.d.ts +0 -8
- package/dist/webpack-config/plugins/XhsMpErrorTransformPlugin.js +0 -40
- package/dist/webpack-config/plugins/XhsMpJsonPlugin.d.ts +0 -36
- package/dist/webpack-config/plugins/XhsMpJsonPlugin.js +0 -71
- package/dist/webpack-config/presets/common.d.ts +0 -4
- package/dist/webpack-config/presets/common.js +0 -40
- package/dist/webpack-config/presets/mp/MpEntryPlugin.d.ts +0 -23
- package/dist/webpack-config/presets/mp/MpEntryPlugin.js +0 -87
- package/dist/webpack-config/presets/mp/index.d.ts +0 -4
- package/dist/webpack-config/presets/mp/index.js +0 -48
- package/dist/webpack-config/presets/prod.d.ts +0 -4
- package/dist/webpack-config/presets/prod.js +0 -83
- package/dist/webpack-config/presets/render/ComponentEntryPlugin.d.ts +0 -18
- package/dist/webpack-config/presets/render/ComponentEntryPlugin.js +0 -77
- package/dist/webpack-config/presets/render/RenderChunkPlugin.d.ts +0 -5
- package/dist/webpack-config/presets/render/RenderEntryPlugin.d.ts +0 -14
- package/dist/webpack-config/presets/render/RenderEntryPlugin.js +0 -42
- package/dist/webpack-config/presets/render/SjsEntryPlugin.d.ts +0 -31
- package/dist/webpack-config/presets/render/index.d.ts +0 -4
- package/dist/webpack-config/presets/render/index.js +0 -62
- package/dist/webpack-config/presets/service/ServiceEntryPlugin.js +0 -36
- package/dist/webpack-config/presets/service/XhsMpServiceChunkPlugin.d.ts +0 -6
- package/dist/webpack-config/presets/service/XhsMpServiceChunkPlugin.js +0 -46
- package/dist/webpack-config/presets/service/XhsV2AssetsPlugin.d.ts +0 -5
- package/dist/webpack-config/presets/service/XhsV2AssetsPlugin.js +0 -27
- package/dist/webpack-config/presets/service/index.d.ts +0 -4
- package/dist/webpack-config/presets/service/index.js +0 -39
- /package/dist/{webpack-config/loaders/component-entry-loader.d.ts → compilerCP.d.ts} +0 -0
- /package/dist/{webpack-config/loaders/component-entry-requirements-loader.d.ts → presets/loaders/mg-entry-loader.d.ts} +0 -0
- /package/dist/{webpack-config → presets}/loaders/mini-style-loader.d.ts +0 -0
- /package/dist/{webpack-config/loaders/render-entry-loader.d.ts → presets/loaders/mp-entry-loader.d.ts} +0 -0
- /package/dist/{webpack-config → presets}/loaders/sjs-loader/index.d.ts +0 -0
- /package/dist/{webpack-config → presets}/loaders/sjs-loader/scope.d.ts +0 -0
- /package/dist/{webpack-config → presets}/loaders/sjs-loader/scope.js +0 -0
- /package/dist/{webpack-config → presets}/loaders/sjs-loader/tranform.d.ts +0 -0
- /package/dist/{webpack-config → presets}/loaders/sjs-loader/tranform.js +0 -0
- /package/dist/{webpack-config → presets}/loaders/wxss-loader.d.ts +0 -0
- /package/dist/{webpack-config/lib → utils}/css.d.ts +0 -0
- /package/dist/{webpack-config/lib → utils}/postcssRpx2Vw.d.ts +0 -0
- /package/dist/{webpack-config/lib → utils}/postcssRpx2Vw.js +0 -0
- /package/dist/{webpack-config/lib → utils}/tagTransformMap.d.ts +0 -0
- /package/dist/{webpack-config/lib → utils}/tagTransformMap.js +0 -0
- /package/dist/{webpack-config/lib → utils}/utils.d.ts +0 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
declare const CONSTANTS: {
|
|
2
|
+
PROD_BROWSERSLIST: string[];
|
|
3
|
+
DEV_BROWSERSLIST: string[];
|
|
4
|
+
DEV_TARGETS: {
|
|
5
|
+
chrome: string;
|
|
6
|
+
};
|
|
7
|
+
PROD_TARGETS: {
|
|
8
|
+
chrome: string;
|
|
9
|
+
ios: string;
|
|
10
|
+
};
|
|
11
|
+
ENTRY_CSS_NAME: string;
|
|
12
|
+
FULL_PKG: string;
|
|
13
|
+
MAIN_PKG: string;
|
|
14
|
+
SUB_PKG: string;
|
|
15
|
+
BUILD_REASON: {
|
|
16
|
+
INIT: string;
|
|
17
|
+
FILE_CHANGE: string;
|
|
18
|
+
ACTIVATE_PKG: string;
|
|
19
|
+
RECOMPILE: string;
|
|
20
|
+
};
|
|
21
|
+
ASSETS_EXTS: string[];
|
|
22
|
+
PACK_MODE: {
|
|
23
|
+
MPPACK: string;
|
|
24
|
+
WEBPACK: string;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
export default CONSTANTS;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const CONSTANTS = {
|
|
4
|
+
PROD_BROWSERSLIST: ['ios_saf >= 10', 'chrome >= 83'],
|
|
5
|
+
DEV_BROWSERSLIST: ['last 2 chrome version'],
|
|
6
|
+
DEV_TARGETS: {
|
|
7
|
+
chrome: '90',
|
|
8
|
+
},
|
|
9
|
+
PROD_TARGETS: {
|
|
10
|
+
chrome: '83',
|
|
11
|
+
ios: '10'
|
|
12
|
+
},
|
|
13
|
+
ENTRY_CSS_NAME: 'app',
|
|
14
|
+
FULL_PKG: 'xhs-full',
|
|
15
|
+
MAIN_PKG: 'xhs-main',
|
|
16
|
+
SUB_PKG: 'xhs-sub',
|
|
17
|
+
BUILD_REASON: {
|
|
18
|
+
INIT: 'INIT',
|
|
19
|
+
FILE_CHANGE: 'FILE_CHANGE',
|
|
20
|
+
ACTIVATE_PKG: 'ACTIVATE_PKG',
|
|
21
|
+
RECOMPILE: 'RECOMPILE',
|
|
22
|
+
},
|
|
23
|
+
ASSETS_EXTS: [
|
|
24
|
+
'png',
|
|
25
|
+
'jpg',
|
|
26
|
+
'jpeg',
|
|
27
|
+
'gif',
|
|
28
|
+
'svg',
|
|
29
|
+
'webp',
|
|
30
|
+
'cer',
|
|
31
|
+
'mp3',
|
|
32
|
+
'aac',
|
|
33
|
+
'm4a',
|
|
34
|
+
'mp4',
|
|
35
|
+
'wav',
|
|
36
|
+
'ogg',
|
|
37
|
+
'silk',
|
|
38
|
+
'wasm',
|
|
39
|
+
'br',
|
|
40
|
+
'plist',
|
|
41
|
+
],
|
|
42
|
+
PACK_MODE: {
|
|
43
|
+
MPPACK: 'mp-pack',
|
|
44
|
+
WEBPACK: 'webpack'
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
exports.default = CONSTANTS;
|
|
@@ -7,18 +7,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
7
7
|
const postcss_preset_env_1 = __importDefault(require("postcss-preset-env"));
|
|
8
8
|
const postcssRpx2Vw_1 = __importDefault(require("./postcssRpx2Vw"));
|
|
9
9
|
const const_1 = __importDefault(require("./const"));
|
|
10
|
-
const types_1 = require("
|
|
10
|
+
const types_1 = require("../types");
|
|
11
11
|
const { DEV_BROWSERSLIST, PROD_BROWSERSLIST } = const_1.default;
|
|
12
12
|
const getCssConfig = (options, presets) => {
|
|
13
13
|
const isDev = options.env === types_1.ENV.development;
|
|
14
14
|
const browsers = isDev ? DEV_BROWSERSLIST : PROD_BROWSERSLIST;
|
|
15
15
|
const loaders = {
|
|
16
16
|
'mini-style-loader': {
|
|
17
|
-
loader: require.resolve('../loaders/mini-style-loader'),
|
|
18
|
-
options
|
|
19
|
-
},
|
|
20
|
-
'wxss-loader': {
|
|
21
|
-
loader: require.resolve('../loaders/wxss-loader'),
|
|
17
|
+
loader: require.resolve('../presets/loaders/mini-style-loader'),
|
|
18
|
+
options: Object.assign(Object.assign({}, options), { independent: true })
|
|
22
19
|
},
|
|
23
20
|
'postcss-loader': {
|
|
24
21
|
loader: require.resolve('postcss-loader'),
|
|
@@ -30,6 +27,9 @@ const getCssConfig = (options, presets) => {
|
|
|
30
27
|
},
|
|
31
28
|
},
|
|
32
29
|
},
|
|
30
|
+
'wxss-loader': {
|
|
31
|
+
loader: require.resolve('../presets/loaders/wxss-loader'),
|
|
32
|
+
},
|
|
33
33
|
};
|
|
34
34
|
return presets.flat().reduce((acc, cur) => {
|
|
35
35
|
if (typeof cur === "string" && loaders[cur]) {
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPrefixName = exports.getCssSuffixName = exports.getMlSuffixName = void 0;
|
|
4
|
+
function getMlSuffixName() {
|
|
5
|
+
return `${process.env.__platform}ml`.trim();
|
|
6
|
+
}
|
|
7
|
+
exports.getMlSuffixName = getMlSuffixName;
|
|
8
|
+
function getCssSuffixName() {
|
|
9
|
+
if (process.env.__platform === 'xhs') {
|
|
10
|
+
return 'css';
|
|
11
|
+
}
|
|
12
|
+
return 'wxss';
|
|
13
|
+
}
|
|
14
|
+
exports.getCssSuffixName = getCssSuffixName;
|
|
15
|
+
function getPrefixName() {
|
|
16
|
+
return process.env.__platform;
|
|
17
|
+
}
|
|
18
|
+
exports.getPrefixName = getPrefixName;
|
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createRequire = exports.getResourceUris = void 0;
|
|
6
|
+
exports.createRequire = exports.getResourceUris = exports.getShortPath = exports.formatPath = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const common_1 = require("./common");
|
|
9
|
+
const getSuffixName_1 = require("./getSuffixName");
|
|
10
|
+
const formatPath = (pathStr = '') => pathStr.split(path_1.default.sep).join(path_1.default.posix.sep);
|
|
11
|
+
exports.formatPath = formatPath;
|
|
12
|
+
const getShortPath = (projectMiniprogramPath, rootContext) => {
|
|
13
|
+
const suffix = (0, getSuffixName_1.getMlSuffixName)();
|
|
14
|
+
const reg = new RegExp(`.${suffix}$`, 'g');
|
|
15
|
+
projectMiniprogramPath = (0, common_1.toUnixPath)(projectMiniprogramPath);
|
|
16
|
+
projectMiniprogramPath = projectMiniprogramPath.endsWith('/')
|
|
17
|
+
? projectMiniprogramPath
|
|
18
|
+
: `${projectMiniprogramPath}/`;
|
|
19
|
+
return (0, common_1.toUnixPath)(rootContext).replace(reg, '').replace(projectMiniprogramPath, '');
|
|
20
|
+
};
|
|
21
|
+
exports.getShortPath = getShortPath;
|
|
4
22
|
/**
|
|
5
23
|
* 根据是否分包获取资源路径
|
|
6
24
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function getProjectConfig(
|
|
1
|
+
export declare function getProjectConfig(projectPath: any): any;
|
|
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.getProjectConfig = void 0;
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
8
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
9
|
-
function getProjectConfig(
|
|
10
|
-
const projectJsonPath = path_1.default.join(
|
|
9
|
+
function getProjectConfig(projectPath) {
|
|
10
|
+
const projectJsonPath = path_1.default.join(projectPath, 'project.config.json');
|
|
11
11
|
let projectJson = {};
|
|
12
12
|
try {
|
|
13
13
|
projectJson = fs_extra_1.default.readJSONSync(projectJsonPath);
|
|
@@ -18,8 +18,8 @@ const hasFile = filepath => {
|
|
|
18
18
|
const getTsconfigPath = config => {
|
|
19
19
|
let res = '';
|
|
20
20
|
// 查询距离最近的 tsconfig.json
|
|
21
|
-
if (config.
|
|
22
|
-
res = path_1.default.resolve(process.cwd(), config.
|
|
21
|
+
if (config.projectPath) {
|
|
22
|
+
res = path_1.default.resolve(process.cwd(), config.projectPath, 'tsconfig.json');
|
|
23
23
|
if (hasFile(res)) {
|
|
24
24
|
return res;
|
|
25
25
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "xhs-mp-compiler-cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.1.0-beta.0",
|
|
4
4
|
"description": "xhs mp command tool.",
|
|
5
5
|
"preferGlobal": true,
|
|
6
6
|
"category": "esm",
|
|
@@ -33,13 +33,11 @@
|
|
|
33
33
|
"@swc/core": "^1.3.74",
|
|
34
34
|
"@swc/helpers": "^0.5.1",
|
|
35
35
|
"@vue/babel-preset-jsx": "^1.2.4",
|
|
36
|
-
"xhs-mp-compiler-core-fork": "1.0.1",
|
|
37
|
-
"xhs-mp-compiler-ml-loader": "1.0.2",
|
|
38
|
-
"xhs-mp-compiler-utils": "1.0.1",
|
|
39
36
|
"babel-loader": "^8.2.2",
|
|
40
37
|
"babel-plugin-istanbul": "^6.0.0",
|
|
41
38
|
"babel-preset-minify": "^0.4.3",
|
|
42
39
|
"clean-webpack-plugin": "^3.0.0",
|
|
40
|
+
"uuid": "^9.0.1",
|
|
43
41
|
"clone": "^2.1.2",
|
|
44
42
|
"commander": "^8.0.0",
|
|
45
43
|
"copy-webpack-plugin": "^9.0.1",
|
|
@@ -53,7 +51,6 @@
|
|
|
53
51
|
"fs-extra": "^10.0.0",
|
|
54
52
|
"glob": "^8.0.1",
|
|
55
53
|
"htmlparser2": "^7.1.2",
|
|
56
|
-
"json-to-ast": "^2.1.0",
|
|
57
54
|
"lodash": "^4.17.21",
|
|
58
55
|
"mini-css-extract-plugin": "^1.6.2",
|
|
59
56
|
"module-alias": "^2.2.2",
|
|
@@ -79,14 +76,17 @@
|
|
|
79
76
|
"webpack": "^5.88.2",
|
|
80
77
|
"webpack-bundle-analyzer": "^4.4.0",
|
|
81
78
|
"webpack-chain": "^6.5.1",
|
|
82
|
-
"webpack-sources": "^3.2.2"
|
|
79
|
+
"webpack-sources": "^3.2.2",
|
|
80
|
+
"xhs-mp-compiler-ml-loader": "1.1.0-beta.0",
|
|
81
|
+
"xhs-mp-compiler-utils": "1.1.0-beta.0",
|
|
82
|
+
"xhs-mp-pack": "^1.1.0-beta.0",
|
|
83
|
+
"xhs-mp-project": "^1.1.0-beta.0"
|
|
83
84
|
},
|
|
84
85
|
"devDependencies": {
|
|
85
86
|
"@types/babel__generator": "7.6.3",
|
|
86
87
|
"@types/babel__traverse": "7.14.1",
|
|
87
88
|
"@types/fs-extra": "9.0.12",
|
|
88
89
|
"@types/jest": "26.0.24",
|
|
89
|
-
"@types/json-to-ast": "2.1.2",
|
|
90
90
|
"@types/mini-css-extract-plugin": "2.0.1",
|
|
91
91
|
"@types/postcss-import": "12.0.1",
|
|
92
92
|
"@types/postcss-preset-env": "6.7.3",
|
|
@@ -110,11 +110,12 @@
|
|
|
110
110
|
"version": "formula changelog && git add .",
|
|
111
111
|
"clean": "rimraf ./dist",
|
|
112
112
|
"copy-files": "cpy '**/*' '!**/*.ts' ../dist/ --cwd=src/ --no-overwrite --parents",
|
|
113
|
+
"watch": "npm run dev",
|
|
114
|
+
"dev": "npm run prebuild && tsc --watch && npm run postbuild",
|
|
115
|
+
"build": "npm run prebuild && tsc && npm run postbuild",
|
|
113
116
|
"prebuild": "npm run clean",
|
|
114
117
|
"postbuild": "npm run copy-files",
|
|
115
118
|
"lint": "eslint . --fix",
|
|
116
|
-
"build": "npm run prebuild && tsc && npm run postbuild",
|
|
117
|
-
"dev": "npm run prebuild && tsc --watch && npm run postbuild",
|
|
118
119
|
"compile": "jest '(/tests/.*\\.spec)\\.ts$'",
|
|
119
120
|
"unit": "jest '(/tests/.*\\.test)\\.ts$' --collectCoverage=false",
|
|
120
121
|
"test": "npm run compile && npm run unit",
|
package/dist/build/index.d.ts
DELETED
package/dist/build/index.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
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 __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const webpack_config_1 = __importDefault(require("../webpack-config"));
|
|
16
|
-
const asyncWebpack_1 = __importDefault(require("../utils/asyncWebpack"));
|
|
17
|
-
const build = (config, callback) => __awaiter(void 0, void 0, void 0, function* () {
|
|
18
|
-
// 构建 render
|
|
19
|
-
const webpackConfig = (0, webpack_config_1.default)(config);
|
|
20
|
-
return (0, asyncWebpack_1.default)(webpackConfig, callback);
|
|
21
|
-
});
|
|
22
|
-
exports.default = build;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
export type ModuleMap = {
|
|
2
|
-
[key: string]: {
|
|
3
|
-
[key: string]: string;
|
|
4
|
-
};
|
|
5
|
-
};
|
|
6
|
-
declare class SjsModule {
|
|
7
|
-
/**
|
|
8
|
-
* @NOTE
|
|
9
|
-
* 管理 file 与 sjs module 的关系
|
|
10
|
-
*/
|
|
11
|
-
moduleMap: ModuleMap;
|
|
12
|
-
/**
|
|
13
|
-
* @NOTE
|
|
14
|
-
* 收集 sjs 的相对路径
|
|
15
|
-
*/
|
|
16
|
-
sjsAbsoulatePaths: Set<string>;
|
|
17
|
-
templateHashToModuleName: Map<string, string[]>;
|
|
18
|
-
constructor();
|
|
19
|
-
/**
|
|
20
|
-
* key:
|
|
21
|
-
* template path hash
|
|
22
|
-
* value:
|
|
23
|
-
* sjsScopeNames
|
|
24
|
-
*
|
|
25
|
-
* { 'Cc9103733ab20cb5ce2c008224782e53f': ['a1', 'b1', 'c1' ] }
|
|
26
|
-
*/
|
|
27
|
-
addTemplateHash(hash: string, sjsScopeNames: string[]): void;
|
|
28
|
-
add(issuer: any, moduleName: any, target: any): void;
|
|
29
|
-
addPath(path: string): void;
|
|
30
|
-
}
|
|
31
|
-
declare const _default: SjsModule;
|
|
32
|
-
export default _default;
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
class SjsModule {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.moduleMap = {};
|
|
6
|
-
this.templateHashToModuleName = new Map();
|
|
7
|
-
this.sjsAbsoulatePaths = new Set();
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* key:
|
|
11
|
-
* template path hash
|
|
12
|
-
* value:
|
|
13
|
-
* sjsScopeNames
|
|
14
|
-
*
|
|
15
|
-
* { 'Cc9103733ab20cb5ce2c008224782e53f': ['a1', 'b1', 'c1' ] }
|
|
16
|
-
*/
|
|
17
|
-
addTemplateHash(hash, sjsScopeNames) {
|
|
18
|
-
this.templateHashToModuleName.set(hash, sjsScopeNames);
|
|
19
|
-
}
|
|
20
|
-
add(issuer, moduleName, target) {
|
|
21
|
-
if (this.moduleMap[issuer]) {
|
|
22
|
-
this.moduleMap[issuer][moduleName] = target;
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
this.moduleMap[issuer] = {
|
|
26
|
-
[moduleName]: target
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
addPath(path) {
|
|
31
|
-
this.sjsAbsoulatePaths.add(path);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
exports.default = new SjsModule();
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const webpack_1 = require("webpack");
|
|
4
|
-
const validateExtJson = (appJSON, extJson, compilation) => {
|
|
5
|
-
var _a;
|
|
6
|
-
const emitError = (details) => {
|
|
7
|
-
const err = new webpack_1.WebpackError(`[ ext.json 内容错误 ]: ${details}`);
|
|
8
|
-
err.file = 'ext.json';
|
|
9
|
-
err.stack = undefined;
|
|
10
|
-
compilation === null || compilation === void 0 ? void 0 : compilation.errors.push(err);
|
|
11
|
-
};
|
|
12
|
-
const limitedPages = appJSON.pages;
|
|
13
|
-
if (extJson.pages) {
|
|
14
|
-
for (const page of extJson.pages) {
|
|
15
|
-
if (!limitedPages.includes(page)) {
|
|
16
|
-
emitError(`page 错误: "${page}" 不在 app.json 内`);
|
|
17
|
-
return false;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
if (extJson.extPages) {
|
|
22
|
-
for (const page of Object.keys(extJson.extPages)) {
|
|
23
|
-
if (!limitedPages.includes(page)) {
|
|
24
|
-
emitError(`extPages 错误: "${page}" 不在 app.json 内`);
|
|
25
|
-
return false;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
if ((_a = extJson === null || extJson === void 0 ? void 0 : extJson.tabBar) === null || _a === void 0 ? void 0 : _a.list) {
|
|
30
|
-
if (extJson.tabBar.list.length < 2) {
|
|
31
|
-
emitError(`tabBar.list 错误: tabBar.list 需至少包含 2 项`);
|
|
32
|
-
return false;
|
|
33
|
-
}
|
|
34
|
-
for (const { pagePath } of extJson.tabBar.list) {
|
|
35
|
-
if (!pagePath) {
|
|
36
|
-
emitError(`tabBar.list 错误: "pagePath" 不能为空`);
|
|
37
|
-
return false;
|
|
38
|
-
}
|
|
39
|
-
if (!limitedPages.includes(pagePath)) {
|
|
40
|
-
emitError(`tabBar.list 错误: "${pagePath}" 不在 app.json 内`);
|
|
41
|
-
return false;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return true;
|
|
46
|
-
};
|
|
47
|
-
/**
|
|
48
|
-
* https://wiki.xiaohongshu.com/pages/viewpage.action?pageId=127531115
|
|
49
|
-
*/
|
|
50
|
-
const mergeList = ['window', 'networkTimeout', 'tabBar'];
|
|
51
|
-
const combineExtJson = (appJSON, extJson, compilation) => {
|
|
52
|
-
if (!validateExtJson(appJSON, extJson, compilation)) {
|
|
53
|
-
return appJSON;
|
|
54
|
-
}
|
|
55
|
-
for (const [key, val] of Object.entries(extJson)) {
|
|
56
|
-
if (key === 'extPages') {
|
|
57
|
-
// extPages 字段作用于每个页面的 json 文件,在 transformAppJson 中处理
|
|
58
|
-
continue;
|
|
59
|
-
}
|
|
60
|
-
else if (typeof val === 'object' && mergeList.includes(key)) {
|
|
61
|
-
// 对需要 merge 的字段进行 merge
|
|
62
|
-
const isArray = Array.isArray(val);
|
|
63
|
-
appJSON[`${key}`] = appJSON[`${key}`] || (isArray ? [] : {});
|
|
64
|
-
// @ts-ignore
|
|
65
|
-
appJSON[`${key}`] = isArray ? [...new Set([...appJSON[`${key}`], ...val])] : Object.assign(Object.assign({}, appJSON[`${key}`]), val);
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
// 除此之外直接用 ext.json 的内容覆盖
|
|
69
|
-
appJSON[`${key}`] = val;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
return appJSON;
|
|
73
|
-
};
|
|
74
|
-
exports.default = combineExtJson;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default function getCssSuffixName(): "css" | "wxss";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default function getMlSuffixName(): string;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default function getPrefixName(): string | undefined;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Compilation } from 'webpack';
|
|
2
|
-
import { AppJSON } from '../types';
|
|
3
|
-
export declare const PATH_REG: RegExp;
|
|
4
|
-
/**
|
|
5
|
-
* wx: https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/app.html
|
|
6
|
-
* bilibili: http://miniapp.bilibili.com/small-app-doc/framework/global-config/
|
|
7
|
-
* 对于小程序开发者,按照 wx 的文档格式来定义 json 文件
|
|
8
|
-
* 根据端侧需求将 json 文件的 pages 字段转换为 bilibili 格式
|
|
9
|
-
* @param miniprogramDir 小程序目录(带miniprogramRoot)
|
|
10
|
-
* @returns 转换后的 bilibili 格式的 app.json
|
|
11
|
-
*/
|
|
12
|
-
declare const transformAppJson: (mpDir: string, miniprogramDir: string, extJsonPath?: string, compilation?: Compilation) => {
|
|
13
|
-
legacyAppJSON: any;
|
|
14
|
-
appJSON: AppJSON;
|
|
15
|
-
};
|
|
16
|
-
export default transformAppJson;
|