提交 315ac2cf 编写于 作者: Q qiang

Merge branch 'dev' into alpha

......@@ -112,6 +112,5 @@ module.exports = {
getPlatformGlobal,
getPlatformStat,
getPlatformPush,
getPlatformUniCloud,
uniModulesLoader: normalizePath(require.resolve('./uni_modules-loader'))
getPlatformUniCloud
}
const {
genUniModulesExports
} = require('./uni_modules/uni_modules')
module.exports = function () {
this.cacheable && this.cacheable()
return genUniModulesExports()
}
'use strict'
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { default: mod }
}
Object.defineProperty(exports, '__esModule', { value: true })
exports.parseDefines = exports.parseExports = exports.genUniModulesExports = void 0
const path_1 = __importDefault(require('path'))
const fs_extra_1 = __importDefault(require('fs-extra'))
const merge_1 = require('merge')
function genUniModulesExports () {
const uniModulesDir = path_1.default.resolve(process.env.UNI_INPUT_DIR, 'uni_modules')
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseInject = exports.parseInjects = exports.parseUniExtApis = void 0;
const path_1 = __importDefault(require("path"));
const fs_extra_1 = __importDefault(require("fs-extra"));
const merge_1 = require("merge");
function parseUniExtApis() {
const uniModulesDir = path_1.default.resolve(process.env.UNI_INPUT_DIR, 'uni_modules');
if (!fs_extra_1.default.existsSync(uniModulesDir)) {
return ''
return {};
}
const importCodes = []
const assignCodes = []
const injects = {};
fs_extra_1.default.readdirSync(uniModulesDir).forEach((uniModuleDir) => {
var _a, _b
const pkgPath = path_1.default.resolve(uniModulesDir, uniModuleDir, 'package.json')
var _a, _b;
// 必须以 uni- 开头
if (!uniModuleDir.startsWith('uni-')) {
return;
}
const pkgPath = path_1.default.resolve(uniModulesDir, uniModuleDir, 'package.json');
if (!fs_extra_1.default.existsSync(pkgPath)) {
return
return;
}
const exports = (_b = (_a = JSON.parse(fs_extra_1.default.readFileSync(pkgPath, 'utf8'))) === null || _a === void 0 ? void 0 : _a.uni_modules) === null || _b === void 0 ? void 0 : _b.exports
const exports = (_b = (_a = JSON.parse(fs_extra_1.default.readFileSync(pkgPath, 'utf8'))) === null || _a === void 0 ? void 0 : _a.uni_modules) === null || _b === void 0 ? void 0 : _b['uni-ext-api'];
if (exports) {
const [exportsImportCodes, exportsAssignCodes] = parseExports(process.env.UNI_PLATFORM === 'h5' ? 'web' : process.env.UNI_PLATFORM, `@/uni_modules/${uniModuleDir}`, exports)
importCodes.push(...exportsImportCodes)
assignCodes.push(...exportsAssignCodes)
}
})
if (!importCodes.length) {
return ''
}
return `${importCodes.join('\n')}
${assignCodes.join('\n')}`
}
exports.genUniModulesExports = genUniModulesExports
function parseExports (platform, source, exports = {}) {
const rootDefines = {}
Object.keys(exports).forEach((name) => {
if (name.startsWith('uni')) {
rootDefines[name] = exports[name]
}
})
const platformDefines = exports[platform]
// 该平台不支持
if (platformDefines === false) {
return [[], []]
Object.assign(injects, parseInjects(process.env.UNI_PLATFORM === 'h5' ? 'web' : process.env.UNI_PLATFORM, `@/uni_modules/${uniModuleDir}`, exports));
}
return parseDefines(source, (0, merge_1.recursive)(true, rootDefines, platformDefines))
}
exports.parseExports = parseExports
function parseDefines (source, defines = {}) {
const importCodes = []
const assignCodes = []
Object.keys(defines).forEach((name) => {
const [defineImportCodes, defineAssignCodes] = parseDefine(source, name, defines[name])
importCodes.push(...defineImportCodes)
assignCodes.push(...defineAssignCodes)
})
return [importCodes, assignCodes]
});
return injects;
}
exports.parseDefines = parseDefines
exports.parseUniExtApis = parseUniExtApis;
/**
* uni:'getBatteryInfo'
* import getBatteryInfo from '..'
......@@ -81,29 +52,48 @@ exports.parseDefines = parseDefines
* @param define
* @returns
*/
function parseDefine (source, globalObject, define) {
const importCodes = []
const assignCodes = []
if (typeof define === 'string') {
importCodes.push(`import ${define} from '${source}'`)
assignCodes.push(`${globalObject}.${define} = ${define}`)
} else if (Array.isArray(define)) {
importCodes.push(`import { ${define.join(', ')} } from '${source}'`)
function parseInjects(platform, source, exports = {}) {
let rootDefines = {};
Object.keys(exports).forEach((name) => {
if (name.startsWith('uni')) {
rootDefines[name] = exports[name];
}
});
const platformDefines = exports[platform];
// 该平台不支持
if (platformDefines === false) {
return {};
}
if (platformDefines) {
rootDefines = (0, merge_1.recursive)(true, rootDefines, platformDefines);
}
const injects = {};
for (const key in rootDefines) {
Object.assign(injects, parseInject(source, 'uni', rootDefines[key]));
}
return injects;
}
exports.parseInjects = parseInjects;
function parseInject(source, globalObject, define) {
const injects = {};
if (define === false) {
}
else if (typeof define === 'string') {
// {'uni.getBatteryInfo' : '@dcloudio/uni-getbatteryinfo'}
injects[globalObject + '.' + define] = source;
}
else if (Array.isArray(define)) {
// {'uni.getBatteryInfo' : ['@dcloudio/uni-getbatteryinfo','getBatteryInfo]}
define.forEach((d) => {
assignCodes.push(`${globalObject}.${d} = ${d}`)
})
} else {
const keys = Object.keys(define)
const specifiers = []
keys.forEach((d) => {
if (d !== define[d]) {
specifiers.push(`${define[d]} as ${d}`)
} else {
specifiers.push(d)
injects[globalObject + '.' + d] = [source, d];
});
}
assignCodes.push(`${globalObject}.${d} = ${d}`)
})
importCodes.push(`import { ${specifiers.join(', ')} } from '${source}'`)
else {
const keys = Object.keys(define);
keys.forEach((d) => {
injects[globalObject + '.' + d] = [source, define[d]];
});
}
return [importCodes, assignCodes]
return injects;
}
exports.parseInject = parseInject;
......@@ -5,8 +5,7 @@ const {
getMainEntry,
getPlatformStat,
getPlatformPush,
getPlatformUniCloud,
uniModulesLoader
getPlatformUniCloud
} = require('@dcloudio/uni-cli-shared')
const vueLoader = require('@dcloudio/uni-cli-shared/lib/vue-loader')
......@@ -66,7 +65,7 @@ const v3 = {
const pushCode = getPlatformPush()
const uniCloudCode = getPlatformUniCloud()
const beforeCode = `import 'uni-pages';import '${uniModulesLoader}!';`
const beforeCode = 'import \'uni-pages\';'
if (!webpackConfig.optimization) {
webpackConfig.optimization = {}
}
......
......@@ -230,7 +230,10 @@ module.exports = function configureWebpack (platformOptions, manifestPlatformOpt
webpackConfig.resolve.modules = webpackConfig.resolve.modules.filter(module => module !== 'node_modules')
}
const plugins = []
const plugins = [
new webpack.ProvidePlugin(require('@dcloudio/uni-cli-shared/lib/uni_modules/uni_modules')
.parseUniExtApis())
]
const isAppView = process.env.UNI_PLATFORM === 'app-plus' &&
vueOptions.pluginOptions &&
......@@ -239,7 +242,9 @@ module.exports = function configureWebpack (platformOptions, manifestPlatformOpt
if (!isAppView) { // app-plus view不需要copy
const patterns = getCopyWebpackPluginOptions(manifestPlatformOptions, vueOptions)
plugins.push(new CopyWebpackPlugin(CopyWebpackPluginVersion > 5 ? { patterns } : patterns))
plugins.push(new CopyWebpackPlugin(CopyWebpackPluginVersion > 5 ? {
patterns
} : patterns))
}
if (!process.env.UNI_SUBPACKGE || !process.env.UNI_MP_PLUGIN) {
try {
......@@ -258,8 +263,10 @@ module.exports = function configureWebpack (platformOptions, manifestPlatformOpt
return ''
}
}]
plugins.push(new CopyWebpackPlugin(CopyWebpackPluginVersion > 5 ? { patterns } : patterns))
} catch (e) { }
plugins.push(new CopyWebpackPlugin(CopyWebpackPluginVersion > 5 ? {
patterns
} : patterns))
} catch (e) {}
}
if (process.UNI_SCRIPT_ENV && Object.keys(process.UNI_SCRIPT_ENV).length) {
......@@ -309,7 +316,8 @@ module.exports = function configureWebpack (platformOptions, manifestPlatformOpt
})
}
if (process.env.NODE_ENV === 'development' || (process.env.NODE_ENV === 'production' && process.env.SOURCEMAP === 'true')) {
if (process.env.NODE_ENV === 'development' || (process.env.NODE_ENV === 'production' && process.env
.SOURCEMAP === 'true')) {
const sourceMap = require('@dcloudio/uni-cli-shared/lib/source-map')
let isAppService = false
if (
......@@ -331,7 +339,9 @@ module.exports = function configureWebpack (platformOptions, manifestPlatformOpt
noSources: true,
append: false
}
if (isInHBuilderX && process.env.SOURCEMAP_PATH) { sourceMapOptions.filename = process.env.SOURCEMAP_PATH }
if (isInHBuilderX && process.env.SOURCEMAP_PATH) {
sourceMapOptions.filename = process.env.SOURCEMAP_PATH
}
if (useEvalSourceMap || useSourceMap) {
plugins.push(sourceMap.createSourceMapDevToolPlugin(!sourceMapOptions.filename, sourceMapOptions))
}
......@@ -339,7 +349,8 @@ module.exports = function configureWebpack (platformOptions, manifestPlatformOpt
if (useEvalSourceMap) {
plugins.push(sourceMap.createEvalSourceMapDevToolPlugin())
} else if (useSourceMap) {
plugins.push(sourceMap.createSourceMapDevToolPlugin(process.env.UNI_PLATFORM === 'mp-weixin' || process.env.UNI_PLATFORM === 'mp-toutiao'))
plugins.push(sourceMap.createSourceMapDevToolPlugin(process.env.UNI_PLATFORM === 'mp-weixin' || process
.env.UNI_PLATFORM === 'mp-toutiao'))
}
}
}
......
......@@ -7,8 +7,7 @@ const {
getH5Options,
getPlatformStat,
getPlatformPush,
getPlatformUniCloud,
uniModulesLoader
getPlatformUniCloud
} = require('@dcloudio/uni-cli-shared')
const {
......@@ -104,7 +103,7 @@ module.exports = {
} catch (e) {}
const beforeCode = (useBuiltIns === 'entry' ? 'import \'@babel/polyfill\';' : '') +
`import 'uni-pages';import 'uni-${process.env.UNI_PLATFORM}';import '${uniModulesLoader}!';`
`import 'uni-pages';import 'uni-${process.env.UNI_PLATFORM}';`
return {
resolve: {
......
......@@ -9,8 +9,7 @@ const {
getPlatformCssnano,
getPlatformStat,
getPlatformPush,
getPlatformUniCloud,
uniModulesLoader
getPlatformUniCloud
} = require('@dcloudio/uni-cli-shared')
const WebpackUniAppPlugin = require('../../packages/webpack-uni-app-loader/plugin/index')
......@@ -182,7 +181,7 @@ module.exports = {
const pushCode = getPlatformPush()
const uniCloudCode = getPlatformUniCloud()
let beforeCode = `import 'uni-pages';import '${uniModulesLoader}!';`
let beforeCode = 'import \'uni-pages\';'
const plugins = [
new WebpackUniAppPlugin(),
......
......@@ -638,9 +638,11 @@ export default {
this.circularEnabled ? 1 : 0
)
},
_navigationClick ($event, type) {
_navigationClick ($event, type, disabled) {
$event.stopPropagation()
if (disabled) return
const swiperItemLength = this.items.length
let _current = this.currentSync
......@@ -796,7 +798,7 @@ export default {
'div',
{
on: {
click: (e) => this._navigationClick(e, 'prev'),
click: (e) => this._navigationClick(e, 'prev', this.prevDisabled),
...navigationEvent
},
class: [
......@@ -814,7 +816,7 @@ export default {
'div',
{
on: {
click: (e) => this._navigationClick(e, 'next'),
click: (e) => this._navigationClick(e, 'next', this.nextDisabled),
...navigationEvent
},
class: [
......@@ -949,8 +951,7 @@ uni-swiper .uni-swiper-navigation {
uni-swiper .uni-swiper-navigation-disabled {
opacity: 0.35;
cursor: auto;
pointer-events: none;
cursor: not-allowed;
}
uni-swiper .uni-swiper-navigation-hide {
......
import { callApiSync } from '../util'
import { getWindowInfo } from './get-window-info'
import deviceId from 'uni-platform/helpers/uuid'
import { sortObject } from 'uni-shared'
let systemInfo = {}
......@@ -21,7 +20,8 @@ export function getDeviceInfo () {
weexGetSystemInfoSync()
const {
deviceBrand = '', deviceModel, osName,
osVersion, deviceOrientation, deviceType
osVersion, deviceOrientation, deviceType,
deviceId
} = systemInfo
const brand = deviceBrand.toLowerCase()
......@@ -32,7 +32,7 @@ export function getDeviceInfo () {
deviceBrand: brand,
deviceModel,
devicePixelRatio: plus.screen.scale,
deviceId: deviceId(),
deviceId,
deviceOrientation,
deviceType,
model: deviceModel,
......
......@@ -66,7 +66,8 @@ const attrs = [
'httpCache',
'playStrategy',
'header',
'advanced'
'advanced',
'title'
]
export default {
......@@ -198,6 +199,10 @@ export default {
default () {
return []
}
},
title: {
type: String,
default: ''
}
},
computed: {
......
......@@ -32,6 +32,10 @@ export function createIntersectionObserver (component, options) {
return swan.createIntersectionObserver(component, options)
}
export function createVideoContext (videoId) {
return swan.createVideoContext(videoId)
}
export {
createMediaQueryObserver
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册