安装
用 npm / yarn 安装:
$ npm install -D packx$ yarn add -D packx特性
- 基于 webpack5
- 支持 less,sass
- 支持 spa/mpa
- 支持 typescript
- 支持自定义html模板和自动生成 html入口
- 支持 react hmr
- 支持扩展 postcss, 比如 px2rem, px2viewport
- 支持自定义配置packx.config.js,覆盖默认webpack配置 (基于 webpack merge 算法)
- 支持 node api 调用和命令行调用
- 支持ssr
用法
- 开发 packx start [-p port]
- 构建 packx build [-p publicPath]
- 自定义 packx run [--build],配置 packx.config.js
- js api 调用
- ssr
入口在 ./src 目录下,比如./src/index.jsx
--src - index.jsx;运行 packx start
入口在 ./src/page/ 目录下,比如./src/page/index.tsx
--src --page -index.tsx;运行 packx start page
入口 html, 如果项目不包含 index.html ,默认会生成 index.html,可以自定义 html 结构
<!DOCTYPE html><html lang="zh-cn"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no,minimal-ui,viewport-fit=cover" /> <meta name="format-detection" content="telephone=no, email=no" /> <meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-touch-fullscreen" content="yes" /> <title></title> </head> <body > <div id="root"></div> </body></html>扩展 postcss 插件
项目根目录添加 postcss.config.js, 以添加 px2viewport 为例
module.exports = (ctx) => { if (!/node_modules/.test(ctx.file)) { ctx.options.plugins.push([ require('postcss-px-to-viewport'), { unitToConvert: 'px', viewportWidth: 375, unitPrecision: 5, propList: ['*'], viewportUnit: 'vw', fontViewportUnit: 'vw', selectorBlackList: ['ignore'], minPixelValue: 1, mediaQuery: false, replace: true, exclude: [/node_modules/], include: undefined, landscape: false, landscapeUnit: 'vw', }, ]); }};packx run 通过 packx.config.js 自定义配置
注意,除了 entry 限制为 object 外, 配置项和 webpack 配置一致
下面通过自定义配置 packx.config.js 实现了 mpa 项目的打包
const path = require('path');module.exports = { entry: { h5: './src/h5/index', pc: './src/pc/index', }, output: { path: path.resolve(__dirname, './dist/packx-demo'), publicPath: '', },};- 开发 packx run
- 构建 packx run --build
node 命令行用法
packx 默认导出了一个 nodeApi, 函数签名如下, Configuration 为 webpack 配置对象
export default function nodeApi(isDev: boolean, config: Configuration, callback?: () => void): void;const { default: pack } = require('packx');...pack(isDev, { entry: { index: `./src/index`, }, devServer: { port: 3000 }, output: { path: getDist('dist'), publicPath, },}, () => { // 构建结束处理 });项目结构和打包输出如下图
ssr
ssr和上述使用参考packx-demo库
项目代码参考 https://github.com/leonwgc/packx-demo
原文转载:http://www.shaoqun.com/a/815667.html
七十女人喜欢被㖭 进去后女人就不反抗了:http://lady.shaoqun.com/m/a/248366.html
几位领导在办公室玩我 把她压在办公桌上进进出出:http://www.30bags.com/m/a/249746.html
一个㖭下面两个吃奶 美女把腿张开让男人使劲桶:http://lady.shaoqun.com/m/a/247532.html
口述实录:少妇实录:邻居用销魂的床技将我征服:http://www.30bags.com/m/a/249951.html
安装用npm/yarn安装:$npminstall-Dpackx$yarnadd-Dpackx特性基于webpack5支持less,sass支持spa/mpa支持typescript支持自定义html模板和自动生成html入口支持reacthmr支持扩展postcss,比如px2rem,px2viewport支持自定义配置packx.config.js,覆盖默认webpack配置(基于webpac
感觉年味越来越淡?一组照片带你感受火红的牛年:http://www.30bags.com/a/241698.html
感慨龙宫——瑶池琼玉现人间(组图) - :http://www.30bags.com/a/406163.html
感冒用这些食物来治疗 - :http://www.30bags.com/a/410041.html
口述实录:不正经的小姨变小三 竟然跟我抢男人:http://lady.shaoqun.com/m/a/251444.html
口述实录:女友嫌贫爱富,失去她后我拥有了全世界!:http://lady.shaoqun.com/m/a/255504.html
男人撕开奶罩揉吮奶头 我都说疼了他还在继续:http://www.30bags.com/m/a/249804.html
如果你此刻正在经历婚外情,这三个女人的故事希望能激励你:http://www.30bags.com/a/443911.html
长期住在不同房间的情侣,对健康有什么影响?:http://www.30bags.com/a/443912.html
男人为何对老婆提不起性趣,原因在这……:http://lady.shaoqun.com/a/117264.html
撞击旗袍丝袜老师 小坏蛋你太厉害了我受不了了:http://lady.shaoqun.com/a/247953.html
男朋友把我抱到镜子前做 对着镜子从后面挺进她:http://www.30bags.com/m/a/249754.html
浅谈野史中的同治皇帝卖淫(下):http://www.30bags.com/a/443910.html
没有评论:
发表评论