提交 92a95f26 编写于 作者: fxy060608's avatar fxy060608

wip(app): nvue

上级 e24c7793
...@@ -183,7 +183,7 @@ ...@@ -183,7 +183,7 @@
fonts.add(fontFace); fonts.add(fontFace);
}); });
} }
return new Promise((resolve2) => { return new Promise((resolve) => {
const style = document.createElement("style"); const style = document.createElement("style");
const values = []; const values = [];
if (desc) { if (desc) {
...@@ -197,7 +197,7 @@ ...@@ -197,7 +197,7 @@
} }
style.innerText = `@font-face{font-family:"${family}";src:${source};${values.join(";")}}`; style.innerText = `@font-face{font-family:"${family}";src:${source};${values.join(";")}}`;
document.head.appendChild(style); document.head.appendChild(style);
resolve2(); resolve();
}); });
} }
function scrollTo(scrollTop, duration) { function scrollTo(scrollTop, duration) {
...@@ -715,9 +715,6 @@ ...@@ -715,9 +715,6 @@
emitter.off(`${subscribeNamespace}.${event}`, callback); emitter.off(`${subscribeNamespace}.${event}`, callback);
}, },
subscribeHandler(event, args, pageId) { subscribeHandler(event, args, pageId) {
{
console.log(formatLog(subscribeNamespace, "subscribeHandler", pageId, event, args));
}
emitter.emit(`${subscribeNamespace}.${event}`, args, pageId); emitter.emit(`${subscribeNamespace}.${event}`, args, pageId);
} }
}; };
...@@ -762,9 +759,6 @@ ...@@ -762,9 +759,6 @@
handler(args, publish); handler(args, publish);
} else { } else {
publish({}); publish({});
{
console.error(formatLog("invokeViewMethod", name, "not register"));
}
} }
} }
const ViewJSBridge = /* @__PURE__ */ extend(initBridge("service"), { const ViewJSBridge = /* @__PURE__ */ extend(initBridge("service"), {
...@@ -4055,31 +4049,7 @@ ...@@ -4055,31 +4049,7 @@
return result; return result;
} }
const isTeleport = (type) => type.__isTeleport; const isTeleport = (type) => type.__isTeleport;
const COMPONENTS = "components";
function resolveComponent(name, maybeSelfReference) {
return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;
}
const NULL_DYNAMIC_COMPONENT = Symbol(); const NULL_DYNAMIC_COMPONENT = Symbol();
function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {
const instance = currentRenderingInstance || currentInstance;
if (instance) {
const Component = instance.type;
if (type === COMPONENTS) {
const selfName = getComponentName(Component);
if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {
return Component;
}
}
const res = resolve(instance[type] || Component[type], name) || resolve(instance.appContext[type], name);
if (!res && maybeSelfReference) {
return Component;
}
return res;
}
}
function resolve(registry, name) {
return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);
}
const Fragment = Symbol(void 0); const Fragment = Symbol(void 0);
const Text$1 = Symbol(void 0); const Text$1 = Symbol(void 0);
const Comment$1 = Symbol(void 0); const Comment$1 = Symbol(void 0);
...@@ -7271,7 +7241,7 @@ ...@@ -7271,7 +7241,7 @@
function actionsChanged({ function actionsChanged({
actions, actions,
reserve reserve
}, resolve2) { }, resolve) {
if (!actions) { if (!actions) {
return; return;
} }
...@@ -7322,7 +7292,7 @@ ...@@ -7322,7 +7292,7 @@
}); });
color = LinearGradient; color = LinearGradient;
} else if (data[0] === "pattern") { } else if (data[0] === "pattern") {
const loaded = checkImageLoaded(data[1], actions.slice(index2 + 1), resolve2, function(image2) { const loaded = checkImageLoaded(data[1], actions.slice(index2 + 1), resolve, function(image2) {
if (image2) { if (image2) {
c2d[method1] = c2d.createPattern(image2, data[2]); c2d[method1] = c2d.createPattern(image2, data[2]);
} }
...@@ -7371,7 +7341,7 @@ ...@@ -7371,7 +7341,7 @@
var url = dataArray[0]; var url = dataArray[0];
var otherData = dataArray.slice(1); var otherData = dataArray.slice(1);
_images = _images || {}; _images = _images || {};
if (checkImageLoaded(url, actions.slice(index2 + 1), resolve2, function(image2) { if (checkImageLoaded(url, actions.slice(index2 + 1), resolve, function(image2) {
if (image2) { if (image2) {
c2d.drawImage.apply(c2d, [image2].concat([...otherData.slice(4, 8)], [...otherData.slice(0, 4)])); c2d.drawImage.apply(c2d, [image2].concat([...otherData.slice(4, 8)], [...otherData.slice(0, 4)]));
} }
...@@ -7393,7 +7363,7 @@ ...@@ -7393,7 +7363,7 @@
} }
} }
if (!actionsWaiting.value) { if (!actionsWaiting.value) {
resolve2({ resolve({
errMsg: "drawCanvas:ok" errMsg: "drawCanvas:ok"
}); });
} }
...@@ -7435,7 +7405,7 @@ ...@@ -7435,7 +7405,7 @@
} }
}); });
} }
function checkImageLoaded(src, actions, resolve2, fn) { function checkImageLoaded(src, actions, resolve, fn) {
var image2 = _images[src]; var image2 = _images[src];
if (image2.ready) { if (image2.ready) {
fn(image2); fn(image2);
...@@ -7453,7 +7423,7 @@ ...@@ -7453,7 +7423,7 @@
actionsChanged({ actionsChanged({
actions: action[0], actions: action[0],
reserve: action[1] reserve: action[1]
}, resolve2); }, resolve);
action = actions2.shift(); action = actions2.shift();
} }
}; };
...@@ -7471,7 +7441,7 @@ ...@@ -7471,7 +7441,7 @@
dataType, dataType,
quality = 1, quality = 1,
type = "png" type = "png"
}, resolve2) { }, resolve) {
const canvas2 = canvasRef.value; const canvas2 = canvasRef.value;
let data; let data;
const maxWidth = canvas2.offsetWidth - x; const maxWidth = canvas2.offsetWidth - x;
...@@ -7528,10 +7498,10 @@ ...@@ -7528,10 +7498,10 @@
} }
newCanvas.height = newCanvas.width = 0; newCanvas.height = newCanvas.width = 0;
context.__hidpi__ = false; context.__hidpi__ = false;
if (!resolve2) { if (!resolve) {
return result; return result;
} else { } else {
resolve2(result); resolve(result);
} }
} }
function putImageData({ function putImageData({
...@@ -7541,7 +7511,7 @@ ...@@ -7541,7 +7511,7 @@
width, width,
height, height,
compressed compressed
}, resolve2) { }, resolve) {
try { try {
if (!height) { if (!height) {
height = Math.round(data.length / 4 / width); height = Math.round(data.length / 4 / width);
...@@ -7556,12 +7526,12 @@ ...@@ -7556,12 +7526,12 @@
canvasRef.value.getContext("2d").drawImage(canvas2, x, y, width, height); canvasRef.value.getContext("2d").drawImage(canvas2, x, y, width, height);
canvas2.height = canvas2.width = 0; canvas2.height = canvas2.width = 0;
} catch (error) { } catch (error) {
resolve2({ resolve({
errMsg: "canvasPutImageData:fail" errMsg: "canvasPutImageData:fail"
}); });
return; return;
} }
resolve2({ resolve({
errMsg: "canvasPutImageData:ok" errMsg: "canvasPutImageData:ok"
}); });
} }
...@@ -7575,7 +7545,7 @@ ...@@ -7575,7 +7545,7 @@
fileType, fileType,
quality, quality,
dirname dirname
}, resolve2) { }, resolve) {
const res = getImageData({ const res = getImageData({
x, x,
y, y,
...@@ -7589,7 +7559,7 @@ ...@@ -7589,7 +7559,7 @@
quality quality
}); });
if (!res.data || !res.data.length) { if (!res.data || !res.data.length) {
resolve2({ resolve({
errMsg: res.errMsg.replace("canvasPutImageData", "toTempFilePath") errMsg: res.errMsg.replace("canvasPutImageData", "toTempFilePath")
}); });
return; return;
...@@ -7602,10 +7572,10 @@ ...@@ -7602,10 +7572,10 @@
putImageData, putImageData,
toTempFilePath toTempFilePath
}; };
function _handleSubscribe(type, data, resolve2) { function _handleSubscribe(type, data, resolve) {
let method = methods2[type]; let method = methods2[type];
if (type.indexOf("_") !== 0 && typeof method === "function") { if (type.indexOf("_") !== 0 && typeof method === "function") {
method(data, resolve2); method(data, resolve);
} }
} }
return extend(methods2, { return extend(methods2, {
...@@ -8524,7 +8494,7 @@ ...@@ -8524,7 +8494,7 @@
}); });
}); });
const id2 = useContextInfo(); const id2 = useContextInfo();
useSubscribe((type, data, resolve2) => { useSubscribe((type, data, resolve) => {
const { options, callbackId } = data; const { options, callbackId } = data;
let res; let res;
let range; let range;
...@@ -8661,7 +8631,7 @@ ...@@ -8661,7 +8631,7 @@
errMsg = "not ready"; errMsg = "not ready";
} }
if (callbackId) { if (callbackId) {
resolve2({ resolve({
callbackId, callbackId,
data: extend({}, res, { data: extend({}, res, {
errMsg: `${type}:${errMsg ? "fail " + errMsg : "ok"}` errMsg: `${type}:${errMsg ? "fail " + errMsg : "ok"}`
...@@ -9107,17 +9077,17 @@ ...@@ -9107,17 +9077,17 @@
uniForm.removeField(ctx); uniForm.removeField(ctx);
}); });
} }
function getSelectedTextRange(_, resolve2) { function getSelectedTextRange(_, resolve) {
const activeElement = document.activeElement; const activeElement = document.activeElement;
if (!activeElement) { if (!activeElement) {
return resolve2({}); return resolve({});
} }
const data = {}; const data = {};
if (["input", "textarea"].includes(activeElement.tagName.toLowerCase())) { if (["input", "textarea"].includes(activeElement.tagName.toLowerCase())) {
data.start = activeElement.selectionStart; data.start = activeElement.selectionStart;
data.end = activeElement.selectionEnd; data.end = activeElement.selectionEnd;
} }
resolve2(data); resolve(data);
} }
const UniViewJSBridgeSubscribe = function() { const UniViewJSBridgeSubscribe = function() {
registerViewMethod(getCurrentPageId(), "getSelectedTextRange", getSelectedTextRange); registerViewMethod(getCurrentPageId(), "getSelectedTextRange", getSelectedTextRange);
...@@ -14253,8 +14223,8 @@ ...@@ -14253,8 +14223,8 @@
if (!name) { if (!name) {
return; return;
} }
registerViewMethod(pageId || getCurrentPageId(), name, ({ type, data }, resolve2) => { registerViewMethod(pageId || getCurrentPageId(), name, ({ type, data }, resolve) => {
callback(type, data, resolve2); callback(type, data, resolve);
}); });
} }
function removeSubscribe(name) { function removeSubscribe(name) {
...@@ -15315,9 +15285,14 @@ ...@@ -15315,9 +15285,14 @@
_setMap _setMap
} = useMapMethods(props2, trigger2); } = useMapMethods(props2, trigger2);
onParentReady(() => { onParentReady(() => {
map2 = extend(plus.maps.create(getCurrentPageId() + "-map-" + (props2.id || Date.now()), Object.assign({}, attrs2.value, position)), { map2 = extend(plus.maps.create(getCurrentPageId() + "-map-" + (props2.id || Date.now()), Object.assign({}, attrs2.value, position, (() => {
if (props2.latitude && props2.longitude) {
return {
center: new plus.maps.Point(Number(props2.longitude), Number(props2.latitude))
};
}
})())), {
__markers__: [], __markers__: [],
__markers_map__: {},
__lines__: [], __lines__: [],
__circles__: [] __circles__: []
}); });
...@@ -15342,7 +15317,7 @@ ...@@ -15342,7 +15317,7 @@
watch(() => position, (position2) => map2 && map2.setStyles(position2), { watch(() => position, (position2) => map2 && map2.setStyles(position2), {
deep: true deep: true
}); });
watch(() => hidden.value, (val) => { watch(hidden, (val) => {
map2 && map2[val ? "hide" : "show"](); map2 && map2[val ? "hide" : "show"]();
}); });
watch(() => props2.scale, (val) => { watch(() => props2.scale, (val) => {
...@@ -15355,12 +15330,18 @@ ...@@ -15355,12 +15330,18 @@
}); });
watch(() => props2.markers, (val) => { watch(() => props2.markers, (val) => {
_addMarkers(val, true); _addMarkers(val, true);
}, {
deep: true
}); });
watch(() => props2.polyline, (val) => { watch(() => props2.polyline, (val) => {
_addMapLines(val); _addMapLines(val);
}, {
deep: true
}); });
watch(() => props2.circles, (val) => { watch(() => props2.circles, (val) => {
_addMapCircles(val); _addMapCircles(val);
}, {
deep: true
}); });
}); });
const mapControls = computed$1(() => props2.controls.map((control) => { const mapControls = computed$1(() => props2.controls.map((control) => {
...@@ -15375,7 +15356,8 @@ ...@@ -15375,7 +15356,8 @@
return { return {
id: control.id, id: control.id,
iconPath: getRealPath(control.iconPath), iconPath: getRealPath(control.iconPath),
position: position2 position: position2,
clickable: control.clickable
}; };
})); }));
onBeforeUnmount(() => { onBeforeUnmount(() => {
...@@ -15392,12 +15374,12 @@ ...@@ -15392,12 +15374,12 @@
default: () => [createVNode("div", { default: () => [createVNode("div", {
"ref": containerRef, "ref": containerRef,
"class": "uni-map-container" "class": "uni-map-container"
}, null, 512), mapControls.value.map((control, index2) => createVNode(resolveComponent("v-uni-cover-image"), { }, null, 512), mapControls.value.map((control, index2) => createVNode(CoverImage, {
"key": index2, "key": index2,
"src": control.iconPath, "src": control.iconPath,
"style": control.position, "style": control.position,
"auto-size": true, "auto-size": true,
"onClick": () => trigger2("controltap", {}, { "onClick": () => control.clickable && trigger2("controltap", {}, {
controlId: control.id controlId: control.id
}) })
}, null, 8, ["src", "style", "auto-size", "onClick"])), createVNode("div", { }, null, 8, ["src", "style", "auto-size", "onClick"])), createVNode("div", {
...@@ -15410,42 +15392,42 @@ ...@@ -15410,42 +15392,42 @@
}); });
function useMapMethods(props2, trigger2) { function useMapMethods(props2, trigger2) {
let map2; let map2;
function moveToLocation(resolve2, { function moveToLocation(resolve, {
longitude, longitude,
latitude latitude
} = {}) { } = {}) {
if (!map2) if (!map2)
return; return;
map2.setCenter(new plus.maps.Point(Number(longitude || props2.longitude), Number(latitude || props2.latitude))); map2.setCenter(new plus.maps.Point(Number(longitude || props2.longitude), Number(latitude || props2.latitude)));
resolve2({ resolve({
errMsg: "moveToLocation:ok" errMsg: "moveToLocation:ok"
}); });
} }
function getCenterLocation(resolve2) { function getCenterLocation(resolve) {
if (!map2) if (!map2)
return; return;
map2.getCurrentCenter((state, point) => { map2.getCurrentCenter((state, point) => {
resolve2({ resolve({
longitude: point.getLng(), longitude: point.getLng(),
latitude: point.getLat(), latitude: point.getLat(),
errMsg: "getCenterLocation:ok" errMsg: "getCenterLocation:ok"
}); });
}); });
} }
function getRegion(resolve2) { function getRegion(resolve) {
if (!map2) if (!map2)
return; return;
const rect = map2.getBounds(); const rect = map2.getBounds();
resolve2({ resolve({
southwest: rect.getSouthWest(), southwest: rect.getSouthWest(),
northeast: rect.getNorthEast(), northeast: rect.getNorthEast(),
errMsg: "getRegion:ok" errMsg: "getRegion:ok"
}); });
} }
function getScale(resolve2) { function getScale(resolve) {
if (!map2) if (!map2)
return; return;
resolve2({ resolve({
scale: map2.getZoom(), scale: map2.getZoom(),
errMsg: "getScale:ok" errMsg: "getScale:ok"
}); });
...@@ -15496,7 +15478,6 @@ ...@@ -15496,7 +15478,6 @@
} }
map2 == null ? void 0 : map2.addOverlay(nativeMarker); map2 == null ? void 0 : map2.addOverlay(nativeMarker);
map2.__markers__.push(nativeMarker); map2.__markers__.push(nativeMarker);
map2 && (map2.__markers_map__[id2 + ""] = nativeMarker);
}); });
} }
function _clearMarkers() { function _clearMarkers() {
...@@ -15507,7 +15488,6 @@ ...@@ -15507,7 +15488,6 @@
map2 == null ? void 0 : map2.removeOverlay(marker); map2 == null ? void 0 : map2.removeOverlay(marker);
}); });
map2.__markers__ = []; map2.__markers__ = [];
map2.__markers_map__ = {};
} }
function _addMarkers(markers, clear2) { function _addMarkers(markers, clear2) {
if (clear2) { if (clear2) {
...@@ -15587,8 +15567,8 @@ ...@@ -15587,8 +15567,8 @@
getRegion, getRegion,
getScale getScale
}; };
useSubscribe((type, data, resolve2) => { useSubscribe((type, data, resolve) => {
methods2[type] && methods2[type](resolve2, data); methods2[type] && methods2[type](resolve, data);
}, useContextInfo(), true); }, useContextInfo(), true);
return { return {
_addMarkers, _addMarkers,
......
export const EVENT_BACKBUTTON = 'backbutton' export const EVENT_BACKBUTTON = 'backbutton'
export function backbuttonListener() { export function backbuttonListener() {
uni uni.navigateBack({
.navigateBack({ from: 'backbutton',
from: 'backbutton', success() {}, // 传入空方法,避免返回Promise,因为onBackPress可能导致fail
} as UniApp.NavigateBackOptions) } as UniApp.NavigateBackOptions)
.catch(() => {})
} }
...@@ -11,6 +11,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) { ...@@ -11,6 +11,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
}; };
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
/** /**
* 注意:该包的依赖包含了 lib 中的 vue-loader,weex-styler,weex-template-compiler * 注意:该包的依赖包含了 lib 中的 weex-template-compiler 依赖的 de-indent
*/ */
__exportStar(require("./webpack"), exports); __exportStar(require("./webpack"), exports);
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.resolveLib = void 0;
const path_1 = __importDefault(require("path"));
function resolveLib(filepath) {
return path_1.default.resolve(__dirname, '../lib', filepath);
}
exports.resolveLib = resolveLib;
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.initModuleAlias = void 0;
const module_alias_1 = __importDefault(require("module-alias"));
const utils_1 = require("../utils");
const MODULES = [
'weex-styler',
'weex-template-compiler',
'@vue/component-compiler-utils',
'@vue/component-compiler-utils/package.json',
];
function initModuleAlias() {
MODULES.forEach((name) => module_alias_1.default.addAlias(name, utils_1.resolveLib(name)));
}
exports.initModuleAlias = initModuleAlias;
...@@ -16,10 +16,10 @@ function createConfig(mode) { ...@@ -16,10 +16,10 @@ function createConfig(mode) {
externals: { externals: {
vue: 'Vue', vue: 'Vue',
}, },
optimization: optimization_1.optimization, optimization: optimization_1.createOptimization(),
output: output_1.output, output: output_1.createOutput(),
module: module_1.module, module: module_1.createModule(),
plugins: plugins_1.plugins, plugins: plugins_1.createPlugins(),
}; };
} }
exports.createConfig = createConfig; exports.createConfig = createConfig;
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.module = void 0; exports.createModule = void 0;
const rules_1 = require("./rules"); const rules_1 = require("./rules");
exports.module = { function createModule() {
rules: rules_1.rules, return {
}; rules: rules_1.createRules(),
};
}
exports.createModule = createModule;
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.babelLoader = void 0; exports.createBabelLoader = void 0;
exports.babelLoader = { function createBabelLoader() {
test: /\.js$/, return {
use: [ test: /\.js$/,
{ use: [
loader: 'babel-loader', {
options: { loader: 'babel-loader',
babelrc: false, options: {
babelrc: false,
},
}, },
}, ],
], };
}; }
exports.createBabelLoader = createBabelLoader;
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.rules = void 0; exports.createRules = void 0;
const babelLoader_1 = require("./babelLoader"); const babelLoader_1 = require("./babelLoader");
const vueLoader_1 = require("./vueLoader"); const vueLoader_1 = require("./vueLoader");
exports.rules = [vueLoader_1.vueLoader, babelLoader_1.babelLoader]; function createRules() {
return [vueLoader_1.createVueLoader(), babelLoader_1.createBabelLoader()];
}
exports.createRules = createRules;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.vueLoader = void 0;
exports.vueLoader = {
test: [/\.nvue(\?[^?]+)?$/, /\.vue(\?[^?]+)?$/],
use: [
{
loader: 'vue-loader',
options: {
hotReload: false,
compiler: require('../../../../../lib/weex-template-compiler'),
},
},
],
};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createCompilerOptions = void 0;
const modules_1 = require("./modules");
function createCompilerOptions() {
return {
modules: modules_1.createModules(),
};
}
exports.createCompilerOptions = createCompilerOptions;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createAssetUrlModule = void 0;
function createAssetUrlModule() {
return {};
}
exports.createAssetUrlModule = createAssetUrlModule;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createBoolAttrModule = void 0;
function createBoolAttrModule() {
return {};
}
exports.createBoolAttrModule = createBoolAttrModule;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createEasycomModule = void 0;
const uni_shared_1 = require("@dcloudio/uni-shared");
function createEasycomModule() {
return {
preTransformNode(el, options) {
if (uni_shared_1.isBuiltInComponent(el.tag) && el.tag !== 'App') {
// 挂在 isUnaryTag 上边,可以保证外部访问到
;
(options.isUnaryTag.autoComponents ||
(options.isUnaryTag.autoComponents = new Set())).add(el.tag);
}
},
};
}
exports.createEasycomModule = createEasycomModule;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createModules = void 0;
const assetUrl_1 = require("./assetUrl");
const boolAttr_1 = require("./boolAttr");
const easycom_1 = require("./easycom");
const renderWhole_1 = require("./renderWhole");
const tags_1 = require("./tags");
function createModules() {
// 先处理 easycom
const modules = [easycom_1.createEasycomModule(), renderWhole_1.createRenderWholeModule()];
if (process.env.UNI_NVUE_COMPILER === 'uni-app') {
modules.push(tags_1.createTagsModule());
}
modules.push(assetUrl_1.createAssetUrlModule());
modules.push(boolAttr_1.createBoolAttrModule());
return modules;
}
exports.createModules = createModules;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createRenderWholeModule = void 0;
// render-whole => append="tree"
function createRenderWholeModule() {
return {
preTransformNode(el) {
if (!Object.hasOwnProperty.call(el.attrsMap, 'append')) {
const name = 'render-whole';
const value = el.attrsMap[name];
if (value === true || value === 'true') {
// remove
delete el.attrsMap.append;
const index = el.attrsList.findIndex((item) => item.name === name);
const attr = el.attrsList[index];
el.attrsList.splice(index, 1);
el.appendAsTree = true;
el.attrsMap.append = 'tree';
el.attrsList.push({
name: 'append',
value: 'tree',
bool: false,
start: attr.start,
end: attr.end,
});
}
}
return el;
},
};
}
exports.createRenderWholeModule = createRenderWholeModule;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createTagsModule = void 0;
function createTagsModule() {
return {
postTransformNode(el) {
rewriteText(el);
rewriteTag(el);
rewriteEvents(el);
rewriteVideo(el);
},
};
}
exports.createTagsModule = createTagsModule;
function rewriteText(el) {
const tag = el.tag;
if (tag === 'text' || tag === 'u-text' || tag === 'button') {
return;
}
const children = el.children;
children.forEach((child, index) => {
if (child.text) {
children.splice(index, 1, {
type: 1,
tag: 'u-text',
attrsList: [],
attrsMap: {},
rawAttrsMap: {},
parent: el,
children: [child],
plain: true,
});
}
});
}
const TAGS = [
'text',
'image',
'input',
'textarea',
'video',
'web-view',
// 'switch',
'slider',
];
function rewriteTag(el) {
if (TAGS.includes(el.tag)) {
el.tag = 'u-' + el.tag;
}
else if (el.tag === 'match-media') {
el.tag = 'uni-match-media';
}
}
const deprecated = {
events: {
tap: 'click',
},
};
function rewriteEvents(el) {
if (!el.events) {
return;
}
const { events: eventsMap } = deprecated;
Object.keys(el.events).forEach((name) => {
// 过时事件类型转换
const eventType = eventsMap[name];
if (eventType) {
if (!(name === 'tap' && el.tag === 'map')) {
// map 的 tap 事件不做转换
el.events[eventType] = el.events[name];
delete el.events[name];
}
}
});
}
function rewriteVideo(el) {
if (el.tag !== 'u-video') {
return;
}
if (!Array.isArray(el.children)) {
return;
}
if (!el.children.length) {
return;
}
if (el.children[0].tag === 'u-scalable') {
return;
}
el.children = [
{
type: 1,
tag: 'u-scalable',
attrsList: [],
attrsMap: {
style: 'position: absolute;left: 0;right: 0;top: 0;bottom: 0;',
},
rawAttrsMap: {
style: {
name: 'style',
value: 'position: absolute;left: 0;right: 0;top: 0;bottom: 0;',
},
},
parent: el,
plain: false,
staticStyle: '{position:"absolute",left:"0",right:"0",top:"0",bottom:"0"}',
children: el.children,
},
];
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.generateEasycomCode = void 0;
const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
function generateEasycomCode(names) {
const components = [];
resolveEasycom(names).forEach(({ name, source }) => {
// 统一转换为驼峰命名
name = name.replace(/-(\w)/g, (_, str) => str.toUpperCase());
components.push(`'${name}': require('${source}').default`);
});
if (process.env.NODE_ENV === 'production') {
return `var components = {${components.join(',')}}`;
}
return `var components;
try{
components = {${components.join(',')}}
}catch(e){
if(e.message.indexOf('Cannot find module') !== -1 && e.message.indexOf('.vue') !== -1){
console.error(e.message)
console.error('1. 排查组件名称拼写是否正确')
console.error('2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom')
console.error('3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件')
} else {
throw e
}
}`;
}
exports.generateEasycomCode = generateEasycomCode;
function resolveEasycom(names) {
return names.reduce((coms, name) => {
const source = uni_cli_shared_1.matchEasycom(name);
if (source) {
coms.push({
name,
source,
});
}
return coms;
}, []);
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createVueLoader = void 0;
const shared_1 = require("@vue/shared");
const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
const compilerOptions_1 = require("./compilerOptions");
const utils_1 = require("../../../../../utils");
const easycom_1 = require("./easycom");
function createVueLoader() {
uni_cli_shared_1.initEasycomsOnce(process.env.UNI_INPUT_DIR, process.env.UNI_PLATFORM);
return {
test: [/\.nvue(\?[^?]+)?$/, /\.vue(\?[^?]+)?$/],
use: [
{
loader: utils_1.resolveLib('vue-loader'),
options: {
hotReload: false,
compiler: createCompiler(),
compilerOptions: compilerOptions_1.createCompilerOptions(),
},
},
],
};
}
exports.createVueLoader = createVueLoader;
const isUnaryTag = shared_1.makeMap('image,area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' +
'link,meta,param,source,track,wbr');
function compileTemplate(source, options, compile) {
const res = compile(source, options);
res.components = easycom_1.generateEasycomCode([
...(options.isUnaryTag.autoComponents || []),
]);
return res;
}
function createCompiler() {
const compiler = require(utils_1.resolveLib('weex-template-compiler'));
const oldCompile = compiler.compile;
compiler.compile = function (source, options = {}) {
;
options.isUnaryTag = isUnaryTag;
options.isUnaryTag.autoComponents = new Set();
options.preserveWhitespace = false;
return compileTemplate(source, options, oldCompile);
};
return compiler;
}
...@@ -3,17 +3,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) { ...@@ -3,17 +3,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod }; return (mod && mod.__esModule) ? mod : { "default": mod };
}; };
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.optimization = void 0; exports.createOptimization = void 0;
const terser_webpack_plugin_1 = __importDefault(require("terser-webpack-plugin")); const terser_webpack_plugin_1 = __importDefault(require("terser-webpack-plugin"));
exports.optimization = { function createOptimization() {
nodeEnv: false, return {
minimizer: [ nodeEnv: false,
new terser_webpack_plugin_1.default({ minimizer: [
terserOptions: { new terser_webpack_plugin_1.default({
output: { terserOptions: {
ascii_only: true, output: {
ascii_only: true,
},
}, },
}, }),
}), ],
], };
}; }
exports.createOptimization = createOptimization;
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.output = void 0; exports.createOutput = void 0;
exports.output = { function createOutput() {
path: process.env.UNI_OUTPUT_DIR, return {
filename: '[name].js', path: process.env.UNI_OUTPUT_DIR,
}; filename: '[name].js',
};
}
exports.createOutput = createOutput;
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.banner = void 0; exports.createBannerPlugin = void 0;
const webpack_1 = require("webpack"); const webpack_1 = require("webpack");
exports.banner = new webpack_1.BannerPlugin({ function createBannerPlugin() {
banner: '"use weex:vue";', return new webpack_1.BannerPlugin({
raw: true, banner: '"use weex:vue";',
exclude: 'Vue', raw: true,
}); exclude: 'Vue',
});
}
exports.createBannerPlugin = createBannerPlugin;
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.define = void 0; exports.createDefinePlugin = void 0;
const webpack_1 = require("webpack"); const webpack_1 = require("webpack");
const shared_1 = require("@vue/shared"); const shared_1 = require("@vue/shared");
const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
exports.define = new webpack_1.DefinePlugin(shared_1.extend({ function createDefinePlugin() {
'process.env.UNI_CLOUD_PROVIDER': process.env.UNI_CLOUD_PROVIDER, return new webpack_1.DefinePlugin(shared_1.extend({
'process.env.HBX_USER_TOKEN': JSON.stringify(process.env.HBX_USER_TOKEN || ''), 'process.env.UNI_CLOUD_PROVIDER': process.env.UNI_CLOUD_PROVIDER,
}, uni_cli_shared_1.initDefine())); 'process.env.HBX_USER_TOKEN': JSON.stringify(process.env.HBX_USER_TOKEN || ''),
}, uni_cli_shared_1.initDefine()));
}
exports.createDefinePlugin = createDefinePlugin;
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.plugins = void 0; exports.createPlugins = void 0;
const define_1 = require("./define"); const define_1 = require("./define");
const banner_1 = require("./banner"); const banner_1 = require("./banner");
const provide_1 = require("./provide"); const provide_1 = require("./provide");
const vueLoader_1 = require("./vueLoader"); const vueLoader_1 = require("./vueLoader");
exports.plugins = [ function createPlugins() {
define_1.define, return [
banner_1.banner, define_1.createDefinePlugin(),
provide_1.provide, banner_1.createBannerPlugin(),
vueLoader_1.vueLoaderPlugin, provide_1.createProvidePlugin(),
]; vueLoader_1.createVueLoaderPlugin(),
];
}
exports.createPlugins = createPlugins;
"use strict"; "use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.provide = void 0; exports.createProvidePlugin = void 0;
const path_1 = __importDefault(require("path"));
const webpack_1 = require("webpack"); const webpack_1 = require("webpack");
const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
const libDir = path_1.default.resolve(__dirname, '../../../../lib'); const utils_1 = require("../../../utils");
const definitions = Object.assign({ uniCloud: [ function createProvidePlugin() {
require.resolve('@dcloudio/uni-cloud/dist/uni-cloud.es.js'), return new webpack_1.ProvidePlugin(Object.assign({ uniCloud: [
'default', require.resolve('@dcloudio/uni-cloud/dist/uni-cloud.es.js'),
], 'uni.getCurrentSubNVue': [ 'default',
path_1.default.join(libDir, 'get-current-sub-nvue.js'), ], 'uni.getCurrentSubNVue': [utils_1.resolveLib('get-current-sub-nvue.js'), 'default'], 'uni.requireNativePlugin': [
'default', utils_1.resolveLib('require-native-plugin.js'),
], 'uni.requireNativePlugin': [ 'default',
path_1.default.join(libDir, 'require-native-plugin.js'), ] }, uni_cli_shared_1.initProvide()));
'default', }
] }, uni_cli_shared_1.initProvide()); exports.createProvidePlugin = createProvidePlugin;
exports.provide = new webpack_1.ProvidePlugin(definitions);
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.vueLoaderPlugin = void 0; exports.createVueLoaderPlugin = void 0;
const { VueLoaderPlugin } = require('../../../../lib/vue-loader'); function createVueLoaderPlugin() {
exports.vueLoaderPlugin = new VueLoaderPlugin(); const { VueLoaderPlugin } = require('../../../../lib/vue-loader');
return new VueLoaderPlugin();
}
exports.createVueLoaderPlugin = createVueLoaderPlugin;
...@@ -5,8 +5,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) { ...@@ -5,8 +5,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.runWebpackDev = exports.runWebpackBuild = void 0; exports.runWebpackDev = exports.runWebpackBuild = void 0;
const webpack_1 = __importDefault(require("webpack")); const webpack_1 = __importDefault(require("webpack"));
const uni_shared_1 = require("@dcloudio/uni-shared");
const config_1 = require("./config"); const config_1 = require("./config");
const alias_1 = require("./alias");
const initModuleAliasOnce = uni_shared_1.once(alias_1.initModuleAlias);
function runWebpack(mode) { function runWebpack(mode) {
initModuleAliasOnce();
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
webpack_1.default(config_1.createConfig(mode), (err, stats) => { webpack_1.default(config_1.createConfig(mode), (err, stats) => {
if (err) { if (err) {
......
import { Plugin } from 'webpack' // import { Plugin } from 'webpack' // fixed by xxxxxx
import { VueTemplateCompiler } from '@vue/component-compiler-utils/dist/types' import { VueTemplateCompiler } from '@vue/component-compiler-utils/dist/types'
import { CompilerOptions } from 'vue-template-compiler' import { CompilerOptions } from 'vue-template-compiler'
......
import { RuleSetRule } from 'webpack' import { RuleSetRule } from 'webpack'
import { VueLoaderOptions } from 'vue-loader'
import { makeMap } from '@vue/shared' import { makeMap } from '@vue/shared'
import type { CompilerOptions, CompiledResult } from 'vue-template-compiler' import type { CompilerOptions, CompiledResult } from 'vue-template-compiler'
import { initEasycomsOnce } from '@dcloudio/uni-cli-shared' import { initEasycomsOnce } from '@dcloudio/uni-cli-shared'
import { createCompilerOptions } from './compilerOptions' import { createCompilerOptions } from './compilerOptions'
import { resolveLib } from '../../../../../utils' import { resolveLib } from '../../../../../utils'
import { generateEasycomCode } from './easycom' import { generateEasycomCode } from './easycom'
import { VueLoaderOptions } from '../../../../../../lib/vue-loader'
export function createVueLoader(): RuleSetRule { export function createVueLoader(): RuleSetRule {
initEasycomsOnce(process.env.UNI_INPUT_DIR, process.env.UNI_PLATFORM) initEasycomsOnce(process.env.UNI_INPUT_DIR, process.env.UNI_PLATFORM)
......
// TODO 等待 vue3 的兼容模式自带emitter // TODO 等待 vue3 的兼容模式自带emitter
import { formatLog } from '@dcloudio/uni-shared'
import E from './TinyEmitter' import E from './TinyEmitter'
export function initBridge( export function initBridge(
......
import { formatLog } from '@dcloudio/uni-shared'
import { INVOKE_SERVICE_API } from '../../constants' import { INVOKE_SERVICE_API } from '../../constants'
type ServiceMethod<Args = any, Res = any> = ( type ServiceMethod<Args = any, Res = any> = (
......
import { formatLog } from '@dcloudio/uni-shared'
import { INVOKE_VIEW_API } from '../../constants' import { INVOKE_VIEW_API } from '../../constants'
type ViewMethod<Args = any, Res = any> = ( type ViewMethod<Args = any, Res = any> = (
......
...@@ -10583,8 +10583,9 @@ function onPageHeadBackButton() { ...@@ -10583,8 +10583,9 @@ function onPageHeadBackButton() {
}); });
} else { } else {
uni.navigateBack({ uni.navigateBack({
from: "backbutton" from: "backbutton",
}).catch(() => { success() {
}
}); });
} }
} }
......
...@@ -20796,8 +20796,9 @@ function onPageHeadBackButton() { ...@@ -20796,8 +20796,9 @@ function onPageHeadBackButton() {
}); });
} else { } else {
uni.navigateBack({ uni.navigateBack({
from: "backbutton" from: "backbutton",
}).catch(() => { success() {
}
}); });
} }
} }
......
...@@ -248,9 +248,10 @@ function onPageHeadBackButton() { ...@@ -248,9 +248,10 @@ function onPageHeadBackButton() {
url: '/', url: '/',
}) })
} else { } else {
;(uni.navigateBack as Function)({ uni.navigateBack({
from: 'backbutton', from: 'backbutton',
}).catch(() => {}) success() {}, // 传入空方法,避免返回Promise,因为onBackPress可能导致fail
} as UniApp.NavigateBackOptions)
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册