QAP项目升级指南
通过 使用了各种webpack插件,如DefinePlugin定义了很多常量 优化了aipList.js文件 babelConfig.plugins.push([require.resolve('./transAPI/index.js')]); 支持QAP代码广告(旺店商品) gulp adv 这样在执行 npm i fie -g
为什么升级项目?
不能debug的原因(猜测)
qap debug
,会走老的配置文件,无法使用最新的weex-debugger工具weex debug
与 qap debug
组合,安卓可以debug,但iOS不行,原因貌似是iOS无法建立调试channel新版本有哪些好处?
配置文件qap.config.js
qap create new-qap
命令会生成一个名为new-qap
的项目,可以看到有qap.config.js文件module.exports = {
toolkit: 'fie-toolkit-nuke',
toolkitConfig: {
webpack: {
sourcemap: 'inline-cheap-module-source-map', // 调试sourcemap类型,默认为inline-cheap-module-source-map。
uglify: true, // 是否对生产环境的代码进行压缩混淆,默认为true。
hotreload: true, // 是否进行热更新,默认为true
'optimize-size': {
nuke: false, // 是否开启对nuke的按需引用,默认为fasle
webpack: false, // 是否按照使用webpack3进行tree shaking,代码需满足export import的es6规范
},
externals: {
nuke: true, // 是否使用内置到客户端的nuke组件,true
rax: true, // 是否使用内置到客户端的rax组件,true
'QAP-SDK': true, // 是否使用内置到客户端的QAP-SDK组件,true
},
alias: {
$components: './src/components',
$pages: './src/pages',
$util: './src/util',
$root: './src/',
$data: './data/',
},
},
report: true, // 是否开启构建信息上报,默认为true
devType: 'qap',
open: true, // 启动调试后自动打开调试辅助页面
},
};
新版配置缺点
我们的QAP项目情况
new webpack.DefinePlugin({
'process.env': {NODE_ENV: JSON.stringify('production')},
'__DEV__': JSON.stringify(JSON.parse('false')),
'____WEBPACK_DEBUG': JSON.stringify(JSON.parse(_definedConfig.prod.debug)),
'____WEBPACK_QAPVERSION': JSON.stringify(_definedConfig.qapVersion),
'____WEBPACK_GUIDE_VERSION': JSON.stringify(_definedConfig.guideVersion),
'____WEBPACK_GUIDE_ANDRIODURL': JSON.stringify(_definedConfig.guideQnAndriod),
'____WEBPACK_TJ_USERS': JSON.stringify(_definedConfig.tjUser),
}),
是否可以让新版官方配置兼容我们自己的webpack配置?
toolkitConfig.webpack.hack.webpackPath
指定我们自己的webpack配置const path = require('path');
module.exports = {
// 当前项目使用的fie套件
toolkit: 'fie-toolkit-nuke',
toolkitConfig: {
port: 8080,
open: true,
openTarget: 'demos/index.html',
liveload: true,
addPath: {},
devType: 'qap',
webpack: {
hack: {
webpackPath: path.resolve(__dirname, 'webpack.config.js'), //使用自定义配置
},
},
keepOld: true,
},
};
qap debug
等命令的时候,检测到有qap.config.js
配置,则会使用新项目的启动方式,即使用fie-toolkit-nuke
工具启动,同时,配置中存在开发者的webpack hack配置,因此,这样就可以使用我们自己的webpack配置了。webpack.config.js改造
v3.1.5
new webpack.optimize.UglifyJsPlugin
相关配置,webpack4不再需要development
或production
,通过指定哪种模式,webpack会自动判断是否需要压缩代码。process.argv[2]
判断qap命令使用哪种mode的配置新版配置常用命令
# 启动调试
qap debug
# 打包
qap package
# 打包QAP代码广告
qap package adv
# 生成二维码
qap qrzip
待优化项
其他说明