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

refactor(qa): uni-quickapp

上级 ffcf467f
......@@ -51,10 +51,10 @@ dsl.onInitApp(function({
// });`
// })
// const pageCode = pageOutput[0].code
const vueCode = fs.readFileSync(path.resolve(__dirname, '../packages/uni-quickapp/lib/' + filename))
const vueCode = fs.readFileSync(path.resolve(__dirname, '../packages/uni-quickapp/assets/' + filename))
fs.writeFileSync(
path.resolve(__dirname, '../packages/uni-quickapp/lib/dsls/' + filename),
path.resolve(__dirname, '../packages/uni-quickapp/dist/' + filename),
vueCode + bridgeCode + appCode, {
encoding: 'utf8'
}
......@@ -62,7 +62,7 @@ dsl.onInitApp(function({
if (process.env.NODE_ENV === 'production') { // 命令会执行dev,prod两次,仅prod时执行copy
const componentsSrc = path.resolve(__dirname, '../src/platforms/quickapp/view/components/**/*')
const componentsDest = path.resolve(__dirname, '../packages/uni-quickapp/lib/components')
const componentsDest = path.resolve(__dirname, '../packages/uni-quickapp/components')
del.sync([componentsDest])
......
......@@ -581,7 +581,11 @@ module.exports = {
return platform.vue
},
getPlatformCompiler () {
if (process.env.UNI_USING_COMPONENTS || process.env.UNI_PLATFORM === 'h5') {
if (
process.env.UNI_USING_COMPONENTS ||
process.env.UNI_PLATFORM === 'h5' ||
process.env.UNI_PLATFORM === 'quickapp'
) {
return require(uniCompiler)
}
return require(platform.compiler)
......
module.exports = config => {
config.module
.rule('vue')
.test([/\.vue$/, /\.nvue$/])
.use('vue-loader')
.loader(require.resolve('@dcloudio/vue-cli-plugin-uni/packages/vue-loader'))
.tap(options => Object.assign(options, {
compiler: require('@dcloudio/uni-template-compiler'),
compilerOptions: {
preserveWhitespace: false
},
hotReload: false,
cacheDirectory: false,
cacheIdentifier: false
}))
config.module
.rule('vue')
.uses
.delete('cache-loader')
config.plugin('extract-css')
.init((Plugin, args) => new Plugin({
filename: '[name].css.json'
}))
config.plugins.delete('hmr')
config.plugins.delete('html')
config.plugins.delete('copy')
config.plugins.delete('preload')
config.plugins.delete('prefetch')
}
const path = require('path')
const webpack = require('webpack')
const CopyPlugin = require('copy-webpack-plugin')
const HandlerPlugin = require('@hap-toolkit/packager/lib/plugin/handler-plugin')
const ZipPlugin = require('@hap-toolkit/packager/lib/plugin/zip-plugin')
const NotifyPlugin = require('@hap-toolkit/packager/lib/plugin/notify-plugin')
const Css2jsonPlugin = require('@hap-toolkit/dsl-vue/lib/plugin/css2json-plugin')
const InstVuePlugin = require('@hap-toolkit/dsl-vue/lib/plugin/instvue-plugin')
const env = {
// 平台:native
NODE_PLATFORM: 'native',
// 阶段: dev|test|release
NODE_PHASE: process.env.NODE_PHASE
}
const dslFilename = 'vue.' + (process.env.NODE_ENV === 'production' ? 'prod' : 'dev') + '.js'
const manifest = global.framework.manifest
function genPriorities(e) {
const o = [/^i18n\/.+\.json$/i, 'manifest.json', 'app.js', /^common\//i];
if (e && e.router && e.router.entry) {
const n = e.router.entry;
o.splice(3, 0, new RegExp(`^${n}/$`), new RegExp(`^${n}/.+`))
} else colorconsole.error('manifest.json 中未配置入口页面 router.entry');
return o
}
module.exports = {
devtool: false,
entry: {
'app': '/Users/fxy/Documents/demo/my-qa-project/src/App.vue?uxType=app',
'pages/index/index': '/Users/fxy/Documents/demo/my-qa-project/src/pages/index/index.vue?uxType=page',
'pages/detail/detail': '/Users/fxy/Documents/demo/my-qa-project/src/pages/detail/detail.vue?uxType=page',
'pages/about/about': '/Users/fxy/Documents/demo/my-qa-project/src/pages/about/about.vue?uxType=page'
},
plugins: [
new webpack.DefinePlugin({
// 平台:na
ENV_PLATFORM: JSON.stringify(env.NODE_PLATFORM),
// 阶段: dev|test|release
ENV_PHASE: JSON.stringify(env.NODE_PHASE),
ENV_PHASE_DV: env.NODE_PHASE === 'dev',
ENV_PHASE_QA: env.NODE_PHASE === 'test',
ENV_PHASE_OL: env.NODE_PHASE === 'prod'
}),
new CopyPlugin([{
from: path.resolve(__dirname, '../dist/' + dslFilename),
to: 'dsl.js'
}, {
from: path.resolve(process.env.UNI_INPUT_DIR, 'manifest.json')
}]),
new HandlerPlugin({}),
new Css2jsonPlugin(),
new InstVuePlugin(),
new ZipPlugin({
name: manifest.package,
icon: manifest.icon,
versionCode: manifest.versionCode,
output: path.resolve(process.env.UNI_OUTPUT_DIR),
pathBuild: path.resolve(process.env.UNI_OUTPUT_DIR, 'build'),
pathSignFolder: './sign',
sign: process.env.NODE_ENV === 'production' ? 'release' : 'debug',
priorities: genPriorities(manifest),
subpackages: undefined,
comment: '{"toolkit":"0.6.13","timeStamp":"2020-03-08T13:22:31.014Z","node":"v12.15.0","platform":"darwin","arch":"x64","extends":null}',
cwd: process.env.UNI_INPUT_DIR,
disableStreamPack: undefined,
disableSubpackages: undefined
}),
new NotifyPlugin()
]
}
global.framework = {}
global.framework.manifest = require('/Users/fxy/Documents/demo/my-qa-project/src/manifest.json')
module.exports = function parseEntry() {
}
const path = require('path')
const webpack = require('webpack')
require('./env')
const CopyPlugin = require('copy-webpack-plugin')
const HandlerPlugin = require('@hap-toolkit/packager/lib/plugin/handler-plugin')
const ZipPlugin = require('@hap-toolkit/packager/lib/plugin/zip-plugin')
const Css2jsonPlugin = require('@hap-toolkit/dsl-vue/lib/plugin/css2json-plugin')
const InstVuePlugin = require('@hap-toolkit/dsl-vue/lib/plugin/instvue-plugin')
const env = {
// 平台:native
NODE_PLATFORM: 'native',
// 阶段: dev|test|release
NODE_PHASE: process.env.NODE_PHASE
}
const dslFilename = 'vue.' + (process.env.NODE_ENV === 'production' ? 'prod' : 'dev') + '.js'
global.framework = {}
global.framework.manifest = require('/Users/fxy/Documents/demo/my-qa-project/src/manifest.json')
const chainWebpack = require('./chain-webpack')
const configureWebpack = require('./configure-webpack')
module.exports = {
configureWebpack: {
devtool: false,
entry: {
'app': '/Users/fxy/Documents/demo/my-qa-project/src/App.vue?uxType=app',
'pages/index/index': '/Users/fxy/Documents/demo/my-qa-project/src/pages/index/index.vue?uxType=page',
'pages/detail/detail': '/Users/fxy/Documents/demo/my-qa-project/src/pages/detail/detail.vue?uxType=page',
'pages/about/about': '/Users/fxy/Documents/demo/my-qa-project/src/pages/about/about.vue?uxType=page'
},
plugins: [
new webpack.DefinePlugin({
// 平台:na
ENV_PLATFORM: JSON.stringify(env.NODE_PLATFORM),
// 阶段: dev|test|release
ENV_PHASE: JSON.stringify(env.NODE_PHASE),
ENV_PHASE_DV: env.NODE_PHASE === 'dev',
ENV_PHASE_QA: env.NODE_PHASE === 'test',
ENV_PHASE_OL: env.NODE_PHASE === 'prod'
}),
new CopyPlugin([{
from: path.resolve(__dirname, './dsls/' + dslFilename),
to: 'dsl.js'
}]),
new HandlerPlugin({}),
new Css2jsonPlugin(),
new InstVuePlugin()
// new ZipPlugin({
// name: s,
// icon: r,
// versionCode: t,
// output: l,
// pathBuild: u,
// pathSignFolder: a,
// sign: k,
// priorities: m,
// subpackages: c,
// comment: S,
// cwd: i,
// disableStreamPack: n.disableStreamPack,
// disableSubpackages: n.disableSubpackages
// })
]
},
chainWebpack: config => {
// config.module
// .rule('vue')
// .test([/\.vue$/, /\.nvue$/])
// .use('vue-loader')
// .loader(require.resolve('@dcloudio/vue-cli-plugin-uni/packages/vue-loader'))
// .tap(options => Object.assign(options, {
// hotReload: false
// }))
config.plugins.delete('hmr')
config.plugins.delete('html')
config.plugins.delete('copy')
config.plugins.delete('preload')
config.plugins.delete('prefetch')
}
chainWebpack,
configureWebpack
}
......@@ -13,5 +13,9 @@
},
"author": "fxy060608",
"license": "Apache-2.0",
"gitHead": "110501ffb0313e417858dec92acf07522d4ded00"
"gitHead": "110501ffb0313e417858dec92acf07522d4ded00",
"dependencies": {
"@hap-toolkit/dsl-vue": "0.6.13",
"@hap-toolkit/packager": "0.6.13"
}
}
......@@ -50,7 +50,8 @@ module.exports = (api, options, rootOptions) => {
'@dcloudio/vue-cli-plugin-uni-optimize': version,
'@dcloudio/webpack-uni-mp-loader': version,
'@dcloudio/webpack-uni-pages-loader': version,
'babel-plugin-import': '^1.11.0'
'babel-plugin-import': '^1.11.0',
'cross-env': '^7.0.2'
},
browserslist: [
'Android >= 4',
......
......@@ -19,6 +19,18 @@ module.exports = (api, options) => {
initBuildCommand(api, options)
if (process.env.UNI_PLATFORM === 'quickapp') {
Object.assign(options, {
assetsDir,
outputDir: path.resolve(process.env.UNI_OUTPUT_DIR, 'build')
})
require('./lib/options')(options)
const vueConfig = require('@dcloudio/uni-quickapp/lib/vue.config.js')
api.configureWebpack(vueConfig.configureWebpack)
api.chainWebpack(vueConfig.chainWebpack)
return
}
const platformOptions = require('./lib/' + process.env.UNI_PLATFORM)
let vueConfig = platformOptions.vueConfig
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册