@dcloudio/uni-cli-shared 3.0.0-alpha-3021220211102002 → 3.0.0-alpha-3021220211105003

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.
@@ -3,6 +3,7 @@ export declare const EXTNAME_JS: string[];
3
3
  export declare const EXTNAME_VUE: string[];
4
4
  export declare const EXTNAME_VUE_RE: RegExp;
5
5
  export declare const EXTNAME_JS_RE: RegExp;
6
+ export declare const ASSETS_INLINE_LIMIT: number;
6
7
  export declare const BINDING_COMPONENTS = "__BINDING_COMPONENTS__";
7
8
  export declare const PAGE_EXTNAME_APP: string[];
8
9
  export declare const PAGE_EXTNAME: string[];
package/dist/constants.js CHANGED
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.COMMON_EXCLUDE = exports.BASE_COMPONENTS_STYLE_PATH = exports.H5_COMPONENTS_STYLE_PATH = exports.H5_FRAMEWORK_STYLE_PATH = exports.H5_API_STYLE_PATH = exports.PAGE_EXTNAME = exports.PAGE_EXTNAME_APP = exports.BINDING_COMPONENTS = exports.EXTNAME_JS_RE = exports.EXTNAME_VUE_RE = exports.EXTNAME_VUE = exports.EXTNAME_JS = exports.PUBLIC_DIR = void 0;
3
+ exports.COMMON_EXCLUDE = exports.BASE_COMPONENTS_STYLE_PATH = exports.H5_COMPONENTS_STYLE_PATH = exports.H5_FRAMEWORK_STYLE_PATH = exports.H5_API_STYLE_PATH = exports.PAGE_EXTNAME = exports.PAGE_EXTNAME_APP = exports.BINDING_COMPONENTS = exports.ASSETS_INLINE_LIMIT = exports.EXTNAME_JS_RE = exports.EXTNAME_VUE_RE = exports.EXTNAME_VUE = exports.EXTNAME_JS = exports.PUBLIC_DIR = void 0;
4
4
  exports.PUBLIC_DIR = 'static';
5
5
  exports.EXTNAME_JS = ['.js', '.ts', '.jsx', '.tsx'];
6
6
  exports.EXTNAME_VUE = ['.vue', '.nvue'];
7
7
  exports.EXTNAME_VUE_RE = /\.(vue|nvue)$/;
8
8
  exports.EXTNAME_JS_RE = /\.[jt]sx?$/;
9
+ exports.ASSETS_INLINE_LIMIT = 40 * 1024;
9
10
  exports.BINDING_COMPONENTS = '__BINDING_COMPONENTS__';
10
11
  // APP 平台解析页面后缀的优先级
11
12
  exports.PAGE_EXTNAME_APP = ['.nvue', '.vue', '.tsx', '.jsx', '.js'];
package/dist/hbx/log.js CHANGED
@@ -40,7 +40,7 @@ exports.removeInfoFormatter = {
40
40
  return '';
41
41
  },
42
42
  };
43
- const REMOVED_WARN_MSGS = ['warnings when minifying css:'];
43
+ const REMOVED_WARN_MSGS = [];
44
44
  exports.removeWarnFormatter = {
45
45
  test(msg) {
46
46
  return !!REMOVED_WARN_MSGS.find((m) => msg.includes(m));
@@ -34,9 +34,13 @@ function parsePagesJson(jsonStr, platform, { debug, darkmode, networkTimeout, su
34
34
  !fs_1.default.existsSync(filename + '.vue')) {
35
35
  nvuePages.push(pagePath);
36
36
  }
37
- pageJsons[pagePath] = (0, shared_1.extend)({
38
- component: true,
39
- }, (0, utils_1.parseWindowOptions)(style, platform, windowOptionsMap));
37
+ const windowOptions = {};
38
+ if (platform === 'mp-baidu') {
39
+ // 仅百度小程序需要页面配置 component:true
40
+ // 快手小程序反而不能配置 component:true,故不能统一添加,目前硬编码处理
41
+ windowOptions.component = true;
42
+ }
43
+ pageJsons[pagePath] = (0, shared_1.extend)(windowOptions, (0, utils_1.parseWindowOptions)(style, platform, windowOptionsMap));
40
44
  }
41
45
  // pages
42
46
  (0, pages_1.validatePages)(pagesJson, jsonStr);
@@ -18,7 +18,7 @@ interface ShareWindowOptions {
18
18
  declare type Style = 'v2' | string;
19
19
  declare type RestartStrategy = 'homePage' | 'homePageAndLatestPage' | string;
20
20
  export interface PageWindowOptions extends ShareWindowOptions {
21
- component: true;
21
+ component?: true;
22
22
  disableScroll?: boolean;
23
23
  usingComponents?: UsingComponents;
24
24
  initialRenderingCache?: 'static' | string;
@@ -1,5 +1,11 @@
1
1
  import { EmittedAsset } from 'rollup';
2
2
  export interface MiniProgramCompilerOptions {
3
+ /**
4
+ * 需要延迟渲染的组件,通常是某个组件的某个事件会立刻触发,需要延迟到首次 render 之后,比如微信 editor 的 ready 事件,快手 switch 的 change
5
+ */
6
+ lazyElement?: {
7
+ [name: string]: string[];
8
+ };
3
9
  event?: {
4
10
  format(name: string, opts: {
5
11
  isCatch?: boolean;
@@ -14,6 +14,7 @@ const DEFAULT_KEYS = [
14
14
  'MP_ALIPAY',
15
15
  'MP_BAIDU',
16
16
  'MP_QQ',
17
+ 'MP_LARK',
17
18
  'MP_TOUTIAO',
18
19
  'MP_WEIXIN',
19
20
  'MP_KUAISHOU',
@@ -3,6 +3,8 @@ export * from './transformPageHead';
3
3
  export * from './transformComponent';
4
4
  export * from './transformEvent';
5
5
  export * from './transformTag';
6
+ export { ATTR_DATASET_EVENT_OPTS, createTransformOn, defaultMatch as matchTransformOn, } from './vOn';
7
+ export { createTransformModel, defaultMatch as matchTransformModel, } from './vModel';
6
8
  export declare const transformMatchMedia: import("@vue/compiler-core").NodeTransform;
7
9
  export declare const transformTapToClick: import("@vue/compiler-core").NodeTransform;
8
10
  export declare const transformComponentLink: (node: import("@vue/compiler-core").RootNode | import("@vue/compiler-core").TemplateChildNode, context: import("@vue/compiler-core").TransformContext) => void;
@@ -10,7 +10,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
10
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.transformComponentLink = exports.transformTapToClick = exports.transformMatchMedia = void 0;
13
+ exports.transformComponentLink = exports.transformTapToClick = exports.transformMatchMedia = exports.matchTransformModel = exports.createTransformModel = exports.matchTransformOn = exports.createTransformOn = exports.ATTR_DATASET_EVENT_OPTS = void 0;
14
14
  const transformTag_1 = require("./transformTag");
15
15
  const transformEvent_1 = require("./transformEvent");
16
16
  const transformComponent_1 = require("./transformComponent");
@@ -20,6 +20,13 @@ __exportStar(require("./transformPageHead"), exports);
20
20
  __exportStar(require("./transformComponent"), exports);
21
21
  __exportStar(require("./transformEvent"), exports);
22
22
  __exportStar(require("./transformTag"), exports);
23
+ var vOn_1 = require("./vOn");
24
+ Object.defineProperty(exports, "ATTR_DATASET_EVENT_OPTS", { enumerable: true, get: function () { return vOn_1.ATTR_DATASET_EVENT_OPTS; } });
25
+ Object.defineProperty(exports, "createTransformOn", { enumerable: true, get: function () { return vOn_1.createTransformOn; } });
26
+ Object.defineProperty(exports, "matchTransformOn", { enumerable: true, get: function () { return vOn_1.defaultMatch; } });
27
+ var vModel_1 = require("./vModel");
28
+ Object.defineProperty(exports, "createTransformModel", { enumerable: true, get: function () { return vModel_1.createTransformModel; } });
29
+ Object.defineProperty(exports, "matchTransformModel", { enumerable: true, get: function () { return vModel_1.defaultMatch; } });
23
30
  exports.transformMatchMedia = (0, transformTag_1.createTransformTag)({
24
31
  'match-media': 'uni-match-media',
25
32
  });
@@ -0,0 +1,12 @@
1
+ import { DirectiveTransform, ElementNode, TransformContext } from '@vue/compiler-core';
2
+ export declare function defaultMatch(node: ElementNode, context: TransformContext): boolean;
3
+ interface CreateTransformModelOptions {
4
+ match: typeof defaultMatch;
5
+ }
6
+ /**
7
+ * 百度、快手小程序的自定义组件,不支持动态事件绑定,故 v-model 也需要调整
8
+ * @param baseTransformModel
9
+ * @returns
10
+ */
11
+ export declare function createTransformModel(baseTransformModel: DirectiveTransform, { match }?: CreateTransformModelOptions): DirectiveTransform;
12
+ export {};
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createTransformModel = exports.defaultMatch = void 0;
4
+ const utils_1 = require("../utils");
5
+ const vOn_1 = require("./vOn");
6
+ function defaultMatch(node, context) {
7
+ return (0, utils_1.isUserComponent)(node, context);
8
+ }
9
+ exports.defaultMatch = defaultMatch;
10
+ /**
11
+ * 百度、快手小程序的自定义组件,不支持动态事件绑定,故 v-model 也需要调整
12
+ * @param baseTransformModel
13
+ * @returns
14
+ */
15
+ function createTransformModel(baseTransformModel, { match } = {
16
+ match: defaultMatch,
17
+ }) {
18
+ return (dir, node, context, augmentor) => {
19
+ const res = baseTransformModel(dir, node, context, augmentor);
20
+ if (!match(node, context)) {
21
+ return res;
22
+ }
23
+ const props = res.props;
24
+ if (props[1]) {
25
+ // input,textarea 的 v-model 事件可能会被合并到已有的 input 中
26
+ const { arg, exp } = props[1];
27
+ (0, vOn_1.addEventOpts)(arg.content, exp, node);
28
+ props[1].exp = (0, vOn_1.createCustomEventExpr)();
29
+ }
30
+ return res;
31
+ };
32
+ }
33
+ exports.createTransformModel = createTransformModel;
@@ -0,0 +1,15 @@
1
+ import { ExpressionNode, DirectiveTransform, ElementNode, TransformContext } from '@vue/compiler-core';
2
+ export declare function defaultMatch(name: string, node: ElementNode, context: TransformContext): boolean;
3
+ interface CreateTransformOnOptions {
4
+ match: typeof defaultMatch;
5
+ }
6
+ /**
7
+ * 百度、快手小程序的自定义组件,不支持动态事件绑定,故转换为静态事件 + dataset
8
+ * @param baseTransformOn
9
+ * @returns
10
+ */
11
+ export declare function createTransformOn(baseTransformOn: DirectiveTransform, { match }?: CreateTransformOnOptions): DirectiveTransform;
12
+ export declare function createCustomEventExpr(): import("@vue/compiler-core").SimpleExpressionNode;
13
+ export declare function addEventOpts(event: string, value: ExpressionNode, node: ElementNode): void;
14
+ export declare const ATTR_DATASET_EVENT_OPTS = "data-e-o";
15
+ export {};
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ATTR_DATASET_EVENT_OPTS = exports.addEventOpts = exports.createCustomEventExpr = exports.createTransformOn = exports.defaultMatch = void 0;
4
+ const compiler_core_1 = require("@vue/compiler-core");
5
+ const utils_1 = require("../utils");
6
+ function defaultMatch(name, node, context) {
7
+ return isCustomEvent(name) && (0, utils_1.isUserComponent)(node, context);
8
+ }
9
+ exports.defaultMatch = defaultMatch;
10
+ /**
11
+ * 百度、快手小程序的自定义组件,不支持动态事件绑定,故转换为静态事件 + dataset
12
+ * @param baseTransformOn
13
+ * @returns
14
+ */
15
+ function createTransformOn(baseTransformOn, { match } = {
16
+ match: defaultMatch,
17
+ }) {
18
+ return (dir, node, context, augmentor) => {
19
+ const res = baseTransformOn(dir, node, context, augmentor);
20
+ const { name, arg, exp } = dir;
21
+ if (name !== 'on' || !arg || !exp || !(0, compiler_core_1.isStaticExp)(arg)) {
22
+ return res;
23
+ }
24
+ if (!match(arg.content, node, context)) {
25
+ return res;
26
+ }
27
+ const value = res.props[0].value;
28
+ res.props[0].value = createCustomEventExpr();
29
+ addEventOpts(arg.content, value, node);
30
+ return res;
31
+ };
32
+ }
33
+ exports.createTransformOn = createTransformOn;
34
+ function createCustomEventExpr() {
35
+ return (0, compiler_core_1.createSimpleExpression)('__e', true);
36
+ }
37
+ exports.createCustomEventExpr = createCustomEventExpr;
38
+ function addEventOpts(event, value, node) {
39
+ const attrName = node.tagType === 1 /* COMPONENT */
40
+ ? ATTR_DATA_EVENT_OPTS
41
+ : exports.ATTR_DATASET_EVENT_OPTS;
42
+ const opts = (0, compiler_core_1.findProp)(node, attrName, true);
43
+ if (!opts) {
44
+ node.props.push(createDataEventOptsProp(attrName, event, value));
45
+ }
46
+ else {
47
+ const children = opts.exp.children;
48
+ children.splice(children.length - 2, 0, createDataEventOptsProperty(event, value));
49
+ }
50
+ }
51
+ exports.addEventOpts = addEventOpts;
52
+ const ATTR_DATA_EVENT_OPTS = 'eO';
53
+ exports.ATTR_DATASET_EVENT_OPTS = 'data-e-o';
54
+ function createDataEventOptsProperty(event, exp) {
55
+ return (0, compiler_core_1.createCompoundExpression)([`'${event}'`, ': ', exp, ',']);
56
+ }
57
+ function createDataEventOptsProp(name, event, exp) {
58
+ return {
59
+ type: 7 /* DIRECTIVE */,
60
+ name: 'bind',
61
+ loc: compiler_core_1.locStub,
62
+ modifiers: [],
63
+ arg: (0, compiler_core_1.createSimpleExpression)(name, true),
64
+ exp: (0, compiler_core_1.createCompoundExpression)([
65
+ '{',
66
+ createDataEventOptsProperty(event, exp),
67
+ '}',
68
+ ]),
69
+ };
70
+ }
71
+ const builtInEvents = [
72
+ '__l',
73
+ 'tap',
74
+ 'longtap',
75
+ 'longpress',
76
+ 'touchstart',
77
+ 'touchmove',
78
+ 'touchcancel',
79
+ 'touchend',
80
+ 'touchforcechange',
81
+ 'transitionend',
82
+ 'animationstart',
83
+ 'animationiteration',
84
+ 'animationend',
85
+ ];
86
+ function isCustomEvent(name) {
87
+ return !builtInEvents.includes(name);
88
+ }
package/lib/nvue.css CHANGED
@@ -1 +1,34 @@
1
- label,scroll-view,swiper-item,view{display:flex;flex-direction:column;flex-shrink:0;flex-grow:0;flex-basis:auto;align-items:stretch;align-content:flex-start}image,input,scroll-view,swiper,swiper-item,text,textarea,video,view{position:relative;border:0 solid #000;box-sizing:border-box}swiper-item{position:absolute}button{margin:0}
1
+ label,
2
+ scroll-view,
3
+ swiper-item,
4
+ view {
5
+ display: flex;
6
+ flex-direction: column;
7
+ flex-shrink: 0;
8
+ flex-grow: 0;
9
+ flex-basis: auto;
10
+ align-items: stretch;
11
+ align-content: flex-start;
12
+ }
13
+
14
+ image,
15
+ input,
16
+ scroll-view,
17
+ swiper,
18
+ swiper-item,
19
+ text,
20
+ textarea,
21
+ video,
22
+ view {
23
+ position: relative;
24
+ border: 0 solid #000;
25
+ box-sizing: border-box;
26
+ }
27
+
28
+ swiper-item {
29
+ position: absolute;
30
+ }
31
+
32
+ button {
33
+ margin: 0;
34
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dcloudio/uni-cli-shared",
3
- "version": "3.0.0-alpha-3021220211102002",
3
+ "version": "3.0.0-alpha-3021220211105003",
4
4
  "description": "@dcloudio/uni-cli-shared",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -21,7 +21,7 @@
21
21
  "@babel/parser": "^7.15.0",
22
22
  "@babel/types": "^7.15.0",
23
23
  "@rollup/pluginutils": "^4.1.1",
24
- "@vue/compiler-core": "^3.2.20",
24
+ "@vue/compiler-core": "^3.2.21",
25
25
  "chokidar": "^3.5.2",
26
26
  "compare-versions": "^3.6.0",
27
27
  "debug": "^4.3.1",
@@ -37,7 +37,7 @@
37
37
  "tapable": "^2.2.0",
38
38
  "xregexp": "3.1.0"
39
39
  },
40
- "gitHead": "370c4aaa417d694ecff57064e2427c18790e85cd",
40
+ "gitHead": "e80ab2c07c1fe093fb69963be219d787251b8eac",
41
41
  "devDependencies": {
42
42
  "@types/hash-sum": "^1.0.0"
43
43
  }