一款小程序加強開發工具 - EWA

EWA (微信小程序加強開發工具)

Enhanced Wechat App Development Toolkit (微信小程序加強開發工具)javascript

項目地址:https://github.com/lyfeyaj/ewa,歡迎試用 ~css

喜歡麼?或者對您有用? ☞ 當即去 ⭐️ Star ⭐️ 一下 ☞html

爲何開發這個工具?

厭倦了不停的對比 wepy 或者 mpvue 的特性,間歇性的踩雷,以及 code once, run everywhere 的幻想。只想給小程序開發插上效率的翅膀 ~vue

功能特性

  1. Async/Await 支持
  2. Javascript ES2017+ 語法
  3. 原生小程序全部功能,無需學習,極易上手
  4. 微信接口 Promise 化
  5. 支持安裝 NPM 包
  6. 支持 SCSS(或 LESS) 以及 小於 16k 的 background-image
  7. 支持 source map, 方便調試
  8. 添加新頁面或新組件無需重啓編譯
  9. 容許自定義編譯流程
  10. 自動兼容舊版本手機中的顯示樣式
  11. 支持 WXSS 和 SCSS(或 LESS) 混用
  12. 代碼混淆及高度壓縮,節省包大小

更多特性正在趕來 ... 敬請期待 👇java

  • 可跨項目複用的小程序組件或頁面(經過NPM包管理)
  • Redux 支持
  • Mixin 支持

安裝

須要 node 版本 >= 8node

npm i -g ewa-cli 或者 yarn global add ewa-cli

如何使用

建立新項目

ewa new your_project_name

集成到現有小程序項目,僅支持小程序原生開發項目轉換

注意:使用此方法,請務必對項目代碼作好備份!!!webpack

cd your_project_dir && ewa init

啓動

運行 npm start 便可啓動實時編譯git

運行 npm run build 便可編譯線上版本(相比實時編譯而言,去除了 source map 並增長了代碼壓縮混淆等,體積更小)github

上述命令運行成功後,能夠看到本地多了個 dist 目錄,這個目錄裏就是生成的小程序相關代碼。web

使用微信開發者工具選擇 dist 目錄打開,便可預覽項目

目錄結構

├── .ewa                         特殊佔位目錄,用於檢查是否爲 ewa 項目
├── dist                         小程序運行代碼目錄(該目錄由ewa的start 或者 build指令自動編譯生成,請不要直接修改該目錄下的文件)
├── node_modules                 外部依賴庫
├── src                          代碼編寫的目錄(該目錄爲使用ewa後的開發目錄)
│   ├── components               小程序組件目錄
│   ├── pages                    小程序頁面目錄
│   │   ├── index
│   │   │   ├── index.js
│   │   │   ├── index.wxml
│   │   │   └── index.wxss
│   │   └── logs
│   │       ├── logs.js
│   │       ├── logs.json
│   │       ├── logs.wxml
│   │       └── logs.wxss
│   ├── templates                小程序模版目錄
│   ├── utils
│   │   └── util.js
│   ├── app.js                   小程序入口文件
│   ├── app.json                 小程序全局配置文件
│   ├── app.wxss                 小程序全局樣式文件
│   └── project.config.json      微信開發者工具小程序項目配置文件
├── ewa.config.js                ewa 配置文件
├── .gitignore
├── .eslintrc.js                 eslint 配置
└── package.json

命令行

ewa <cmd> [args]

命令:
  ewa new <projectName>       建立新的微信小程序項目           [別名: create]
  ewa init                    在現有的小程序項目中初始化 EWA
  ewa start                   啓動 EWA 小程序項目實時編譯         [別名: dev]
  ewa build                   編譯小程序靜態文件
  ewa clean                   清理小程序靜態文件
  ewa upgrade                 升級 EWA 工具
  ewa generate <type> <name>  快速生成模版                          [別名: g]

選項:
  --version, -v  當前版本號                                               [布爾]
  --help, -h     獲取使用幫助                                             [布爾]

微信接口 Promise 化

const { wx } = require('ewa');

Page({
  async onLoad() {
    let { data } = await wx.request({ url: 'http://your_api_endpoint' });
  }
})

配置

ewa 經過 ewa.config.js 來支持個性化配置。以下所示:

// ewa.config.js

module.exports = {
  // 公用代碼庫 (node_modules 打包生成的文件)名稱,默認爲 vendors.js
  commonModuleName: 'vendors.js',

  // 通用模塊匹配模式,默認爲 /[\\/](node_modules|utils|vendor)[\\/].+\.js/
  // 如需添加多個文件夾,可自定義正則,如 /[\\/](node_modules|utils|custom_dirname)[\\/].+\.js/
  commonModulePattern: /[\\/](node_modules|utils|vendor)[\\/].+\.js/,

  // 是否簡化路徑,做用於 page 和 component,如 index/index.wxml=> index.wxml,默認爲 false
  simplifyPath: false,

  // 文件夾快捷引用
  aliasDirs: [
    'apis',
    'assets',
    'constants',
    'utils'
  ],

  // 須要拷貝的文件類型
  copyFileTypes: [
    'png',
    'jpeg',
    'jpg',
    'gif',
    'svg',
    'ico'
  ],

  // webpack loader 規則
  rules: [],

  // webpack 插件
  plugins: [],

  // 開發環境下是否自動清理無用文件,默認爲 true
  autoCleanUnusedFiles: true,

  // css 解析器,sass 或者 less,默認爲 sass
  cssParser: 'sass',

  // 嫌不夠靈活?直接修改 webpack 配置
  webpack: function(config) {
    return config;
  }
};

常見問題 & Tips

  1. 能夠使用 @ 來代替 源代碼根目錄 來引入代碼或樣式,如 const utils = require('@/utils/util')
  2. WXSS 中能夠直接編寫 SCSS 樣式代碼
  3. WXSS 或 SCSS 中引用絕對路徑須要在路徑前加 ~ 符號,如:@import "~@/assets/styles/common.scss";,具體緣由參見: sass-loader
相關文章
相關標籤/搜索