Giter VIP home page Giter VIP logo

lyfeyaj / ewa Goto Github PK

View Code? Open in Web Editor NEW
182.0 10.0 26.0 2.12 MB

Enhanced Wechat App Development Toolkit (微信小程序增强开发工具)。不同于 wepy 或者 mpvue,是一个轻量级小程序开发框架。支持原生小程序所有功能,无需学习,极易上手。支持转换为百度/字节跳动/QQ/支付宝小程序。

Home Page: https://ewa.js.org

License: MIT License

JavaScript 100.00%
wechat-app wechat-mini-program ewa wepy mpvue wxss-scss promise

ewa's Introduction

EWA (微信小程序增强开发工具)

Enhanced Wechat App Development Toolkit (微信小程序增强开发工具)

为什么开发这个工具?

厌倦了不停的对比 tarowepy 或者 mpvue 的特性,间歇性的踩雷,构建和运行速度慢以及 code once, run everywhere 的幻想。只想给小程序开发插上效率的翅膀 ~

功能特性

  1. Async/Await 支持
  2. Javascript ES2020 语法
  3. 原生小程序所有功能,无需学习,极易上手
  4. 微信接口 Promise 化
  5. 支持安装 NPM 包
  6. 支持 SCSS(或 LESS) 以及 小于 16k 的 background-image
  7. 支持 source map, 方便调试
  8. 添加新页面或新组件无需重启编译
  9. 允许自定义编译流程
  10. 自动兼容旧版本手机中的显示样式
  11. 支持 WXSS 和 SCSS(或 LESS) 混用
  12. 代码混淆及高度压缩,节省包大小
  13. Typescript 支持
  14. 支持转换成 百度 / 字节跳动 / QQ / 支付宝小程序
  15. 多种小程序开发插件,为小程序开发减负,解放生产力

更多特性正在赶来 ... 敬请期待

安装

需要 node 版本 >= 10.13

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

如何使用

创建新项目

ewa new your_project_name

集成到现有小程序项目,仅支持小程序原生开发项目转换

注意:使用此方法,请务必对项目代码做好备份!!!

cd your_project_dir && ewa init

启动

运行 npm start 即可启动实时编译

运行 npm run build 即可编译线上版本(相比实时编译而言,去除了 source map 并增加了代码压缩混淆等,体积更小)

上述命令运行成功后,可以看到本地多了个 dist 目录,这个目录里就是生成的小程序相关代码。

使用微信开发者工具选择 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]

选项:
  -v, --version  当前版本号                                               [布尔]
  -h, --help     获取使用帮助                                             [布尔]

实时编译

ewa start

启动 EWA 小程序项目实时编译

选项:
  -v, --version  当前版本号                                               [布尔]
  -h, --help     获取使用帮助                                             [布尔]
  -t, --type     构建目标 `weapp` 或 `swan` 或 `alipay` 或 `tt` 或 `qq`
            [字符串] [可选值: "weapp", "swan", "alipay", "tt", "qq"] [默认值: "weapp"]

构建

ewa build

编译小程序静态文件

选项:
  -v, --version  当前版本号                                               [布尔]
  -h, --help     获取使用帮助                                             [布尔]
  -t, --type     构建目标 `weapp` 或 `swan` 或 `alipay` 或 `tt` 或 `qq`
            [字符串] [可选值: "weapp", "swan", "alipay", "tt", "qq"] [默认值: "weapp"]

快速生成样板文件

ewa generate <type> <name>

快速生成模版

位置:
  type  类型 `page` 或 `component` 或 `template`
                       [字符串] [必需] [可选值: "page", "component", "template"]
  name  名称                                                     [字符串] [必需]

选项:
  -v, --version     当前版本号                                            [布尔]
  -h, --help        获取使用帮助                                          [布尔]
  -d, --target-dir  目标文件夹,默认为 src,也可以指定为 src 中的某个子目录
                                                                        [字符串]
  -i, --index       生成的文件名称为 [name]/index,默认为 [name]/[name]   [布尔]

清理 dist 目录

ewa clean

清理小程序静态文件

选项:
  -v, --version  当前版本号                                               [布尔]
  -h, --help     获取使用帮助                                             [布尔]
  -t, --type     构建目标 `weapp` 或 `swan` 或 `alipay` 或 `tt` 或 `qq`
      [字符串] [可选值: "weapp", "swan", "alipay", "tt", "qq"] [默认值: "weapp"]

多端支持和环境变量

多端支持

目前 EWA 支持 微信 / 百度 / 字节跳动 / QQ / 支付宝 5个平台的小程序。

只需要基于微信小程序开发,可以通过命令行工具自动构建为不同平台的小程序,具体参见上方的命令行说明。

多端构建的 dist 目录分别为:

微信: dist
百度: dist-swan
字节跳动: dist-tt
QQ: dist-qq
支付宝: dist-alipay

环境变量

EWA 会提供 process.env.EWA_ENVprocess.env.NODE_ENV 来辅助开发同学判断多端和不同的开发环境

可以在 .js 或 .ts 文件中直接使用,可选值见下方说明:

process.env.EWA_ENV: 多端支持的环境变量
可选值为 "weapp"、"swan"、"alipay"、"tt"、"qq", 默认是 "weapp"

process.env.NODE_ENV: 开发环境变量
可选值为 "development" 和 "production", 分别对应 ewa start 和 ewa build 命令

功能插件

微信接口 Promise 化

// 引入
const { api } = require('ewa');

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

插件: enableState

用途

PageComponent 中引入 this.setState(data, callback) 方法, 并根据 data 数据自动 diff 出变更, 减少单次 data 提交的数据量,避免超过小程序 1mb 的限制

常见问题

  1. 由于小程序本身的 bug, 当增量更新数组元素的时候, wxml 中无法正确获取到数组元素的 length

使用示例

// 在 app.js 中引入插件,并初始化
const { enableState } = require('ewa');

// 参数支持:
//   opts: 参数对象
//     debug: 是否开启 debug 模式,支持3种参数: true, 'page', 'component', 默认为 false
//     component: 是否开启 component 支持, 默认为 true
//     page: 是否开启 page 支持, 默认为 true
//     overwriteArrayOnDeleted: 是否在数组发生删除操作是覆盖整个数组 true 或者 false, 默认为 true
//     autoSync: 是否在 调用 setData 时自动同步 state, 默认为 true; 如果关闭此操作,在同一个页面或组件中混用 setState 或 setData 的时候,可能会导致BUG, 也可以手动调用 this.syncState() 来手动同步
enableState({
  debug: true,
  component: true,
  page: true,
  overwriteArrayOnDeleted: true,
  autoSync: true
});

// 上述插件会引入 this.setState 方法,在 Page 和 Component 中均可调用
// setState 方法会自动 diff 并仅提交数据变更
// 例:
Page({
  data: { a: 1, b: 1, c: { d: 1, e: 1 } }
  async onLoad() {
    // 自动 diff 变化
    // 相当于 this.setData({ b: 2, 'c.d': 2 });
    this.setState({ a: 1, b: 2, c: { d: 2, e: 1 } });

    // this.setState 支持使用 promise 来代替回调函数,如
    this.setState({ info: { name: 'My Page Title' } }).then(() => {
      // 数据已更新到视图, 这里写完成视图更新后的逻辑
    });

    // 同理,这里可以使用 await 来简化
    await this.setState({ info: { name: 'My Page Title' } });
    // 数据已更新到视图, 这里写完成视图更新后的逻辑
  }
})

插件: createStore

用途

支持设置全局响应式对象, 能够监听对象属性并自动更新到 data 中

使用示例

// 1. 创建 store: 对任意纯对象调用 createStore 使其响应式化(以 app.js 中 globalData 为例)
//    app.js 中引入
const { createStore } = require('ewa');

App({
  ...
  globalData: createStore (
    // 全局响应式对象
    {
      a: 'old1',
      b: {
        c: 'old2'
      }
    },

    // 可以自定义注入到 Page 或 Component 中的方法和属性,也可以不设置
    // 如果设置了自定义的方法和变量
    // 那么实际在 Page 或 Component 中引用的时候需要相应的替换成 自定义的名称,示例如下:
    {
      $set: 'yourCustomSet',
      $on: 'yourCustomOn',
      $emit: 'yourCustomEmit',
      $off: 'yourCustomOff',
      $once: 'yourCustomOnce',
      $watch: 'yourCustomWatch'
    }
  )
})

// 2. 改变 globalData 以及全局状态更新(支持嵌套属性和数组下标修改)

// pageA.js
Page({
  data: {
    a: '',
    b: {
      c: ''
    }
  }
})

onLoad() {
  App().globalData.a = 'new1'
  console.log(this.data.a === 'new1')  // true

  App().globalData.b.c = 'new2'
  console.log(this.data.b.c === 'new2') // true
}


// 3. 注入全局方法 使用示例:
this.$on('test', (val) => { console.log(val) })

// 发射数据变化
this.$emit('test', 'value');

// 使用方法同 this.$on 只会触发一次
this.$once('test', (val) => {});

// 解绑当前实例通过 this.$on(...) 注册的事件
this.$off('test');

// 以上方法适用于
// 1. 页面与页面
// 2. 页面与组件
// 3. 组件与组件

// 注: 所有页面或组件销毁时会自动解绑所有的事件(无需手动调用 `this.$off(...)`)
// `this.$set('coinName', '金币')` 更新所有页面和组件 data 中 'coinName' 的值为 '金币'(支持嵌套属性和数组下标修改)

// $watch 监听页面或组件 data 中属性 支持监听属性路径形式如 'a[1].b'

// 使用示例:
Page({
  data: {
     prop: '',
     obj: {
       key: ''
     }
   },
   $watch: {
     // 方式一
     'prop': function(newVal, oldVal) {
     },
     // 方式二
     'obj': {
       handler: function(newVal, oldVal) {
       },
       deep: Boolean, // 深度遍历
       immediate: Boolean // 立即触发
     }
   }
});

配置

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',

  // 是否开启 hashed module id
  hashedModuleIds: true,

  // 是否开启缓存,默认为 true
  cache: true,

  // 自定义环境变量, 默认为 ['NODE_ENV', 'EWA_ENV']
  customEnvironments: [],

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

更新日志

本项目遵从 Angular Style Commit Message Conventions,更新日志请查阅 Release

常见问题 & Tips

  1. 可以使用 @ 来代替 源代码根目录 来引入代码或样式,如 const utils = require('@/utils/util')
  2. WXSS 中可以直接编写 SCSS 样式代码
  3. WXSS 或 SCSS 中引用绝对路径需要在路径前加 ~ 符号,如:@import "~@/assets/styles/common.scss";,具体原因参见: sass-loader
  4. ewa build 后如果无法正常运行小程序,可检查下是否关闭了微信开发者工具中的 ES6 转 ES5增强编译 选项。原因是:ewa 打包时会将 ES6 转换为 ES5 并混淆压缩,此功能和微信开发者工具自带的 ES6 转 ES5增强编译 功能有部分重复,多次转换会导致代码无法运行,所以只要关闭即可。
  5. 其他问题欢迎直接在 Github 上提交 issue,也可以添加下方微信反馈(请注明来意 ^_^)

lyfeyaj

ewa's People

Contributors

18yi avatar cnlly avatar hezhuoyi avatar lyfeyaj avatar qianyinghuanmie avatar yana5417 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ewa's Issues

可以给命令的路径加上双引号吗

我还没入门就要被劝退了

C:\Users\12708\WeChatProjects\em-Copy>npm start

> [email protected] start C:\Users\12708\WeChatProjects\em-Copy
> ewa clean && ewa start

[22:04:34] [ewa] 正在清理 dist 目录... 
[22:04:34] [ewa] 清理完成 !
[22:04:35] [ewa] 正在启动项目实时编译...
internal/modules/cjs/loader.js:883
  throw err;
  ^

Error: Cannot find module 'D:\Program'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
    at Function.Module._load (internal/modules/cjs/loader.js:725:27)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
    at internal/main/run_main_module.js:17:47 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}
(node:7856) UnhandledPromiseRejectionWarning: Error: Command failed: cd C:\Users\12708\WeChatProjects\em-Copy && node D:\Program Files\nodejs\node_global\node_modules\ewa-cli\node_modules\ewa-webpack\lib\run.js

wxml使用html-loader压缩的问题

wxml文件使用html-loader并压缩之后 有些标签会有问题 比如 标签 小程序原生的是 每个标签都是对应的 但是压缩之后就截掉了标签结束符

请问如何在ewa项目下使用 towxml ?

一直使用ewa,真的很好用,谢谢作者一直坚持更新!
现在碰到个问题,想使用这个来转换markdown,

https://github.com/sbfkcel/towxml

但它的引入方式有点另类,在src内按它的安装步骤来做,编译的时候就会出错,

希望您能抽空看看怎么才能正常使用这类插件, 非常感谢!

错误如下:

84 problems (21 errors, 63 warnings)

 @ /Volumes/Works/Sites/mini/src/towxml/parse/markdown/index.js 42:9-30
 @ /Volumes/Works/Sites/mini/src/towxml/index.js

ERROR in /Volumes/Works/Sites/mini/src/towxml/config.js
Module build failed (from /usr/local/lib/node_modules/ewa-cli/node_modules/eslint-loader/index.js):
Error: ENOENT: no such file or directory, open '/Volumes/Works/Sites/mini/src/utils/towxml/config.js'
    at Object.openSync (fs.js:440:3)
    at Object.writeFileSync (fs.js:1281:35)
    at /usr/local/lib/node_modules/ewa-cli/node_modules/eslint/lib/cli-engine.js:545:16
    at Array.forEach (<anonymous>)
    at Function.outputFixes (/usr/local/lib/node_modules/ewa-cli/node_modules/eslint/lib/cli-engine.js:544:97)
    at printLinterOutput (/usr/local/lib/node_modules/ewa-cli/node_modules/eslint-loader/index.js:81:24)
    at /usr/local/lib/node_modules/ewa-cli/node_modules/eslint-loader/index.js:261:11
    at /usr/local/lib/node_modules/ewa-cli/node_modules/loader-fs-cache/index.js:122:24
    at Gunzip.cb (/usr/local/lib/node_modules/ewa-cli/node_modules/loader-fs-cache/index.js:47:14)
    at Gunzip.zlibBufferOnEnd (zlib.js:139:10)
    at Gunzip.emit (events.js:215:7)
    at endReadableNT (_stream_readable.js:1199:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)

ERROR in /Volumes/Works/Sites/mini/src/app.js
Module not found: Error: Can't resolve 'towxml/index' in '/Volumes/Works/Sites/mini/src'
resolve 'towxml/index' in '/Volumes/Works/Sites/mini/src'
  Parsed request is a module
  using description file: /Volumes/Works/Sites/mini/package.json (relative path: ./src)
    resolve as module
      /Volumes/Works/Sites/mini/src/node_modules doesn't exist or is not a directory
      /Volumes/Resources/Sites/node_modules doesn't exist or is not a directory
      /Volumes/Resources/node_modules doesn't exist or is not a directory
      /Volumes/node_modules doesn't exist or is not a directory
      /node_modules doesn't exist or is not a directory
      looking for modules in /Volumes/Works/Sites/mini/node_modules
        using description file: /Volumes/Works/Sites/mini/package.json (relative path: ./node_modules)
          using description file: /Volumes/Works/Sites/mini/package.json (relative path: ./node_modules/towxml/index)
            no extension
              /Volumes/Works/Sites/mini/node_modules/towxml/index doesn't exist
            .ts
              /Volumes/Works/Sites/mini/node_modules/towxml/index.ts doesn't exist
            .js
              /Volumes/Works/Sites/mini/node_modules/towxml/index.js doesn't exist
            .html
              /Volumes/Works/Sites/mini/node_modules/towxml/index.html doesn't exist
            .wxml
              /Volumes/Works/Sites/mini/node_modules/towxml/index.wxml doesn't exist
            .wxs
              /Volumes/Works/Sites/mini/node_modules/towxml/index.wxs doesn't exist
            .css
              /Volumes/Works/Sites/mini/node_modules/towxml/index.css doesn't exist
            .wxss
              /Volumes/Works/Sites/mini/node_modules/towxml/index.wxss doesn't exist
            .scss
              /Volumes/Works/Sites/mini/node_modules/towxml/index.scss doesn't exist
            .sass
              /Volumes/Works/Sites/mini/node_modules/towxml/index.sass doesn't exist
            as directory
              /Volumes/Works/Sites/mini/node_modules/towxml/index doesn't exist
      looking for modules in /usr/local/lib/node_modules/ewa-cli/node_modules/ewa-webpack/node_modules
        using description file: /usr/local/lib/node_modules/ewa-cli/node_modules/ewa-webpack/package.json (relative path: ./node_modules)
          using description file: /usr/local/lib/node_modules/ewa-cli/node_modules/ewa-webpack/package.json (relative path: ./node_modules/towxml/index)
            no extension
              /usr/local/lib/node_modules/ewa-cli/node_modules/ewa-webpack/node_modules/towxml/index doesn't exist
            .ts
              /usr/local/lib/node_modules/ewa-cli/node_modules/ewa-webpack/node_modules/towxml/index.ts doesn't exist
            .js
              /usr/local/lib/node_modules/ewa-cli/node_modules/ewa-webpack/node_modules/towxml/index.js doesn't exist
            .html
              /usr/local/lib/node_modules/ewa-cli/node_modules/ewa-webpack/node_modules/towxml/index.html doesn't exist
            .wxml
              /usr/local/lib/node_modules/ewa-cli/node_modules/ewa-webpack/node_modules/towxml/index.wxml doesn't exist
            .wxs
              /usr/local/lib/node_modules/ewa-cli/node_modules/ewa-webpack/node_modules/towxml/index.wxs doesn't exist
            .css
              /usr/local/lib/node_modules/ewa-cli/node_modules/ewa-webpack/node_modules/towxml/index.css doesn't exist
            .wxss
              /usr/local/lib/node_modules/ewa-cli/node_modules/ewa-webpack/node_modules/towxml/index.wxss doesn't exist
            .scss
              /usr/local/lib/node_modules/ewa-cli/node_modules/ewa-webpack/node_modules/towxml/index.scss doesn't exist
            .sass
              /usr/local/lib/node_modules/ewa-cli/node_modules/ewa-webpack/node_modules/towxml/index.sass doesn't exist
            as directory
              /usr/local/lib/node_modules/ewa-cli/node_modules/ewa-webpack/node_modules/towxml/index doesn't exist
      looking for modules in /usr/local/lib/node_modules/ewa-cli/node_modules
        using description file: /usr/local/lib/node_modules/ewa-cli/package.json (relative path: ./node_modules)
          using description file: /usr/local/lib/node_modules/ewa-cli/package.json (relative path: ./node_modules/towxml/index)
            no extension
              /usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index doesn't exist
            .ts
              /usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index.ts doesn't exist
            .js
              /usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index.js doesn't exist
            .html
              /usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index.html doesn't exist
            .wxml
              /usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index.wxml doesn't exist
            .wxs
              /usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index.wxs doesn't exist
            .css
              /usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index.css doesn't exist
            .wxss
              /usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index.wxss doesn't exist
            .scss
              /usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index.scss doesn't exist
            .sass
              /usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index.sass doesn't exist
            as directory
              /usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index doesn't exist
      looking for modules in /usr/local/lib/node_modules/ewa-cli/node_modules
        using description file: /usr/local/lib/node_modules/ewa-cli/package.json (relative path: ./node_modules)
          using description file: /usr/local/lib/node_modules/ewa-cli/package.json (relative path: ./node_modules/towxml/index)
            no extension
              /usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index doesn't exist
            .ts
              /usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index.ts doesn't exist
            .js
              /usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index.js doesn't exist
            .html
              /usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index.html doesn't exist
            .wxml
              /usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index.wxml doesn't exist
            .wxs
              /usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index.wxs doesn't exist
            .css
              /usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index.css doesn't exist
            .wxss
              /usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index.wxss doesn't exist
            .scss
              /usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index.scss doesn't exist
            .sass
              /usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index.sass doesn't exist
            as directory
              /usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index doesn't exist
[/Volumes/Works/Sites/mini/src/node_modules]
[/Volumes/Resources/Sites/node_modules]
[/Volumes/Resources/node_modules]
[/Volumes/node_modules]
[/node_modules]
[/Volumes/Works/Sites/mini/node_modules/towxml/index]
[/Volumes/Works/Sites/mini/node_modules/towxml/index.ts]
[/Volumes/Works/Sites/mini/node_modules/towxml/index.js]
[/Volumes/Works/Sites/mini/node_modules/towxml/index.html]
[/Volumes/Works/Sites/mini/node_modules/towxml/index.wxml]
[/Volumes/Works/Sites/mini/node_modules/towxml/index.wxs]
[/Volumes/Works/Sites/mini/node_modules/towxml/index.css]
[/Volumes/Works/Sites/mini/node_modules/towxml/index.wxss]
[/Volumes/Works/Sites/mini/node_modules/towxml/index.scss]
[/Volumes/Works/Sites/mini/node_modules/towxml/index.sass]
[/usr/local/lib/node_modules/ewa-cli/node_modules/ewa-webpack/node_modules/towxml/index]
[/usr/local/lib/node_modules/ewa-cli/node_modules/ewa-webpack/node_modules/towxml/index.ts]
[/usr/local/lib/node_modules/ewa-cli/node_modules/ewa-webpack/node_modules/towxml/index.js]
[/usr/local/lib/node_modules/ewa-cli/node_modules/ewa-webpack/node_modules/towxml/index.html]
[/usr/local/lib/node_modules/ewa-cli/node_modules/ewa-webpack/node_modules/towxml/index.wxml]
[/usr/local/lib/node_modules/ewa-cli/node_modules/ewa-webpack/node_modules/towxml/index.wxs]
[/usr/local/lib/node_modules/ewa-cli/node_modules/ewa-webpack/node_modules/towxml/index.css]
[/usr/local/lib/node_modules/ewa-cli/node_modules/ewa-webpack/node_modules/towxml/index.wxss]
[/usr/local/lib/node_modules/ewa-cli/node_modules/ewa-webpack/node_modules/towxml/index.scss]
[/usr/local/lib/node_modules/ewa-cli/node_modules/ewa-webpack/node_modules/towxml/index.sass]
[/usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index]
[/usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index.ts]
[/usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index.js]
[/usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index.html]
[/usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index.wxml]
[/usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index.wxs]
[/usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index.css]
[/usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index.wxss]
[/usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index.scss]
[/usr/local/lib/node_modules/ewa-cli/node_modules/towxml/index.sass]
 @ /Volumes/Works/Sites/mini/src/app.js 28:10-33

您好,感谢你分享的那么好的脚手架!问下关于Promise和async await的问题

您好,感谢你分享的那么好的脚手架!
刚刚才试用了下,比重型的框架好多了,清爽快捷还优雅!
特别对于新手来说,微信小程序都那么多坑了,
还要踩更多框架的坑太不爽了。
十分感谢有ewa!

缺点是文档虽然漂亮但实在太简单了,对新手很难,
碰到了几个问题想请教下,如果能在文档上加上多一点点的例子就更好了。

在文档里有关Promise和async await的例子

貌似只能在 onload 这些生命周期事件里使用?不能全局使用么?
如果过可以的话,能不能请您给些例子,方便使用。

微信接口 Promise 化
const { wx } = require('ewa');

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

关于 ewa 通过 ewa.config.js 来支持个性化配置

能不能给些关于webpack config的例子呢

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

原生微信小程序初始化报错

昨天提的issue是命令中路径的问题,我把npm包的路径修改了,解决了
现在初始化原生小程序又有问题,直接init和创建再移动代码的方法都试过了,都这样
我原生的微信小程序已经上线了,所以应该是没问题的,但这里初始化的时候报一大堆错,而且编译完的app.wxss文件里面是js代码

image
image

C:\Users\12708\WeChatProjects\em-Copy>npm start

> [email protected] start
> ewa clean && ewa start

[16:09:11] [ewa] 正在清理 dist 目录...
[16:09:11] [ewa] 清理完成 !
[16:09:11] [ewa] 正在启动项目实时编译...
[16:09:12] [ewa] [nodemon] 2.0.9
[16:09:12] [ewa] [nodemon] to restart at any time, enter `rs`
[16:09:12] [ewa] [nodemon] watching path(s): .ewa\**\*
[16:09:12] [ewa] [nodemon] watching extensions: js
[16:09:12] [ewa] [nodemon] starting `node D:\node_global\node_modules\ewa-cli\node_modules\webpack-cli\bin\cli.js --config D:\node_global\node_modules\ewa-cli\node_modules\ewa-webpack\lib\config.js --watch`
[16:09:14] [ewa] 构建类型: 微信小程序
[16:09:14] [ewa] 构建目录: C:\Users\12708\WeChatProjects\em-Copy\dist

webpack is watching the files…


× Webpack
  Compiled with some errors in 4.02s

[16:09:18] [ewa]
[16:09:18] [ewa] AutoCleanUnusedFilesPlugin skipped due to errors.
Time: 4025ms
Built at: 2021/07/04 下午4:09:18
   72 modules

WARNING in
C:\Users\12708\WeChatProjects\em-Copy\src\miniprogram\app.js
  33:9  warning  Unexpected console statement  no-console
  45:7  warning  Unexpected console statement  no-console

C:\Users\12708\WeChatProjects\em-Copy\src\miniprogram\colorui\components\cu-custom\cu-custom.js
  51:10  warning  Unexpected console statement  no-console

C:\Users\12708\WeChatProjects\em-Copy\src\miniprogram\components\color-picker\color-picker.js
  371:15  warning  'greenRatioX' is assigned a value but never used  no-unused-vars
  372:15  warning  'blueRatioX' is assigned a value but never used   no-unused-vars
  377:15  warning  'redRatioX' is assigned a value but never used    no-unused-vars
  378:15  warning  'blueRatioX' is assigned a value but never used   no-unused-vars
  383:15  warning  'redRatioX' is assigned a value but never used    no-unused-vars
  384:15  warning  'greenRatioX' is assigned a value but never used  no-unused-vars

C:\Users\12708\WeChatProjects\em-Copy\src\miniprogram\components\modal\index.js
  32:15  warning  'e' is defined but never used  no-unused-vars

C:\Users\12708\WeChatProjects\em-Copy\src\miniprogram\pages\draw\draw.js
   132:8   warning  'e' is defined but never used                     no-unused-vars
   144:5   warning  Unexpected console statement                      no-console
   156:5   warning  Unexpected console statement                      no-console
   161:5   warning  Unexpected console statement                      no-console
   187:13  warning  Unexpected console statement                      no-console
   242:36  warning  'reject' is defined but never used                no-unused-vars
   265:9   warning  Unexpected console statement                      no-console
   329:5   warning  Unexpected console statement                      no-console
   358:5   warning  Unexpected console statement                      no-console
   367:12  warning  'e' is defined but never used                     no-unused-vars
   476:7   warning  'imgType' is assigned a value but never used      no-unused-vars
   506:20  warning  'add' is defined but never used                   no-unused-vars
   617:10  warning  'e' is defined but never used                     no-unused-vars
   844:22  warning  'res' is defined but never used                   no-unused-vars
   954:11  warning  'e' is defined but never used                     no-unused-vars
   959:9   warning  'res' is defined but never used                   no-unused-vars
  1226:22  warning  'e' is defined but never used                     no-unused-vars
  1228:7   warning  'layer' is assigned a value but never used        no-unused-vars
  1264:20  warning  'touch1' is assigned a value but never used       no-unused-vars
  1268:5   warning  Unexpected console statement                      no-console
  1276:16  warning  'touch1' is assigned a value but never used       no-unused-vars
  1293:16  warning  'touch1' is assigned a value but never used       no-unused-vars
  1306:5   warning  Unexpected console statement                      no-console
  1344:18  warning  'e' is defined but never used                     no-unused-vars
  1390:5   warning  Unexpected console statement                      no-console
  1540:13  warning  'doHistory' is assigned a value but never used    no-unused-vars
  1623:13  warning  'e' is defined but never used                     no-unused-vars
  1651:23  warning  'e' is defined but never used                     no-unused-vars
  1744:20  warning  'e' is defined but never used                     no-unused-vars
  1870:16  warning  'touch1' is assigned a value but never used       no-unused-vars
  1881:16  warning  'touch1' is assigned a value but never used       no-unused-vars
  1883:7   warning  'xMove' is assigned a value but never used        no-unused-vars
  1884:7   warning  'yMove' is assigned a value but never used        no-unused-vars
  1906:5   warning  Unexpected console statement                      no-console
  2124:13  warning  'e' is defined but never used                     no-unused-vars
  2517:11  warning  'that' is assigned a value but never used         no-unused-vars
  2518:7   warning  'type' is assigned a value but never used         no-unused-vars
  2521:8   warning  'e' is defined but never used                     no-unused-vars
  2552:11  warning  'e' is defined but never used                     no-unused-vars
  2561:7   warning  Unexpected console statement                      no-console
  2614:13  warning  Unexpected console statement                      no-console
  2618:11  warning  'id' is assigned a value but never used           no-unused-vars
  2628:11  warning  'width' is assigned a value but never used        no-unused-vars
  2629:11  warning  'height' is assigned a value but never used       no-unused-vars
  2632:11  warning  'layerHeight' is assigned a value but never used  no-unused-vars
  2633:11  warning  'layerWidth' is assigned a value but never used   no-unused-vars
  2651:39  warning  'arr' is defined but never used                   no-unused-vars
  2711:11  warning  Unexpected console statement                      no-console
  2717:19  warning  Unexpected console statement                      no-console
  2727:27  warning  'value' is defined but never used                 no-unused-vars
  2732:23  warning  Unexpected console statement                      no-console
  2866:10  warning  'getDistance' is defined but never used           no-unused-vars
  2877:10  warning  'countDeg' is defined but never used              no-unused-vars
  2913:10  warning  'createPreview' is defined but never used         no-unused-vars
  2987:10  warning  'gaussBlur' is defined but never used             no-unused-vars
  3135:10  warning  'initTextPreview' is defined but never used       no-unused-vars
  3143:7   warning  Unexpected console statement                      no-console
  3412:10  warning  'squarePoint' is defined but never used           no-unused-vars
  3450:10  warning  'isPointInMatrix' is defined but never used       no-unused-vars

C:\Users\12708\WeChatProjects\em-Copy\src\miniprogram\pages\index\index.js
  115:8   warning  'e' is defined but never used                      no-unused-vars
  126:5   warning  Unexpected console statement                       no-console
  137:21  warning  'options' is defined but never used                no-unused-vars
  155:7   warning  Unexpected console statement                       no-console
  220:32  warning  'e' is defined but never used                      no-unused-vars
  238:36  warning  'reject' is defined but never used                 no-unused-vars
  253:9   warning  'my_tagIndex' is assigned a value but never used   no-unused-vars
  254:9   warning  'my_tagList' is assigned a value but never used    no-unused-vars
  265:11  warning  Unexpected console statement                       no-console
  288:9   warning  Unexpected console statement                       no-console
  310:10  warning  'e' is defined but never used                      no-unused-vars
  315:9   warning  Unexpected console statement                       no-console
  336:9   warning  'home_tagList' is assigned a value but never used  no-unused-vars
  353:5   warning  Unexpected console statement                       no-console
  378:9   warning  'my_tagList' is assigned a value but never used    no-unused-vars
  380:5   warning  Unexpected console statement                       no-console
  403:17  warning  'e' is defined but never used                      no-unused-vars
  410:20  warning  'e' is defined but never used                      no-unused-vars
  425:19  warning  'e' is defined but never used                      no-unused-vars
  433:9   warning  Unexpected console statement                       no-console
  447:17  warning  'result' is defined but never used                 no-unused-vars
  457:15  warning  'e' is defined but never used                      no-unused-vars
  496:15  warning  'e' is defined but never used                      no-unused-vars
  507:15  warning  'e' is defined but never used                      no-unused-vars
  522:37  warning  'tl' is assigned a value but never used            no-unused-vars
  610:19  warning  'e' is defined but never used                      no-unused-vars
  618:7   warning  Unexpected console statement                       no-console
  636:11  warning  Unexpected console statement                       no-console
  639:45  warning  'reject' is defined but never used                 no-unused-vars
  653:23  warning  Unexpected console statement                       no-console
  659:19  warning  Unexpected console statement                       no-console
  665:35  warning  'res' is defined but never used                    no-unused-vars
  666:13  warning  Unexpected console statement                       no-console
  682:11  warning  Unexpected console statement                       no-console
  686:9   warning  Unexpected console statement                       no-console
  690:14  warning  'e' is defined but never used                      no-unused-vars
  705:16  warning  'e' is defined but never used                      no-unused-vars
  711:9   warning  'home_tagList' is assigned a value but never used  no-unused-vars
  715:5   warning  Unexpected console statement                       no-console

C:\Users\12708\WeChatProjects\em-Copy\src\miniprogram\pages\test\test.js
   9:25  warning  'e' is defined but never used  no-unused-vars
  17:21  warning  'e' is defined but never used  no-unused-vars

✖ 134 problems (24 errors, 110 warnings)


ERROR in C:/Users/12708/WeChatProjects/em-Copy/src/miniprogram/app.wxss (D:/node_global/node_modules/ewa-cli/node_modules/cache-loader/dist/cjs.js!D:/node_global/node_modules/ewa-cli/node_modules/css-loader/dist/cjs.js??ref--10-3!D:/node_global/node_modules/ewa-cli/node_modules/postcss-loader/dist/cjs.js??ref--10-4!D:/node_global/node_modules/ewa-cli/node_modules/resolve-url-loader!./loaders/fix-import-wxss-loader.js??ref--10-6!D:/node_global/node_modules/ewa-cli/node_modules/sass-loader/dist/cjs.js??ref--10-7!./loaders/import-wxss-loader.js??ref--10-8!C:/Users/12708/WeChatProjects/em-Copy/src/miniprogram/app.wxss)
Module build failed (from ./loaders/import-wxss-loader.js):
Error: Can't resolve '@/colorui/animation.wxss' in 'C:\Users\12708\WeChatProjects\em-Copy\src\miniprogram'
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\Resolver.js:209:21
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\Resolver.js:285:5
    at eval (eval at create (D:\node_global\node_modules\ewa-cli\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:15:1)
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\UnsafeCachePlugin.js:44:7
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\Resolver.js:285:5
    at eval (eval at create (D:\node_global\node_modules\ewa-cli\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:15:1)
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\Resolver.js:285:5
    at eval (eval at create (D:\node_global\node_modules\ewa-cli\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:27:1)
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\DescriptionFilePlugin.js:67:43
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\Resolver.js:285:5
    at eval (eval at create (D:\node_global\node_modules\ewa-cli\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:657:1)
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\AliasPlugin.js:67:43
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\Resolver.js:285:5
    at eval (eval at create (D:\node_global\node_modules\ewa-cli\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:15:1)
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\UnsafeCachePlugin.js:44:7
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\Resolver.js:285:5
    at eval (eval at create (D:\node_global\node_modules\ewa-cli\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:15:1)
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\Resolver.js:285:5
    at eval (eval at create (D:\node_global\node_modules\ewa-cli\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:27:1)
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\DescriptionFilePlugin.js:67:43
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\Resolver.js:285:5
    at eval (eval at create (D:\node_global\node_modules\ewa-cli\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:16:1)
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\RootPlugin.js:37:38
    at _next42 (eval at create (D:\node_global\node_modules\ewa-cli\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:8:1)
    at eval (eval at create (D:\node_global\node_modules\ewa-cli\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:31:1)
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\Resolver.js:285:5
    at eval (eval at create (D:\node_global\node_modules\ewa-cli\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:27:1)
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\DescriptionFilePlugin.js:67:43
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\Resolver.js:285:5
    at eval (eval at create (D:\node_global\node_modules\ewa-cli\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:16:1)
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\Resolver.js:285:5
    at eval (eval at create (D:\node_global\node_modules\ewa-cli\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:15:1)
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\DirectoryExistsPlugin.js:27:15
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:85:15
    at processTicksAndRejections (internal/process/task_queues.js:75:11)
 @ C:/Users/12708/WeChatProjects/em-Copy/src/miniprogram/app.wxss 2:12-718 9:17-24 13:15-22

ERROR in C:/Users/12708/WeChatProjects/em-Copy/src/miniprogram/app.wxss
Module build failed (from D:/node_global/node_modules/ewa-cli/node_modules/cache-loader/dist/cjs.js):
ModuleBuildError: Module build failed (from ./loaders/import-wxss-loader.js):
Error: Can't resolve '@/colorui/main.wxss' in 'C:\Users\12708\WeChatProjects\em-Copy\src\miniprogram'
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\Resolver.js:209:21
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\Resolver.js:285:5
    at eval (eval at create (D:\node_global\node_modules\ewa-cli\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:15:1)
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\UnsafeCachePlugin.js:44:7
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\Resolver.js:285:5
    at eval (eval at create (D:\node_global\node_modules\ewa-cli\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:15:1)
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\Resolver.js:285:5
    at eval (eval at create (D:\node_global\node_modules\ewa-cli\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:27:1)
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\DescriptionFilePlugin.js:67:43
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\Resolver.js:285:5
    at eval (eval at create (D:\node_global\node_modules\ewa-cli\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:657:1)
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\AliasPlugin.js:67:43
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\Resolver.js:285:5
    at eval (eval at create (D:\node_global\node_modules\ewa-cli\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:15:1)
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\UnsafeCachePlugin.js:44:7
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\Resolver.js:285:5
    at eval (eval at create (D:\node_global\node_modules\ewa-cli\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:15:1)
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\Resolver.js:285:5
    at eval (eval at create (D:\node_global\node_modules\ewa-cli\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:27:1)
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\DescriptionFilePlugin.js:67:43
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\Resolver.js:285:5
    at eval (eval at create (D:\node_global\node_modules\ewa-cli\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:16:1)
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\RootPlugin.js:37:38
    at _next42 (eval at create (D:\node_global\node_modules\ewa-cli\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:8:1)
    at eval (eval at create (D:\node_global\node_modules\ewa-cli\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:31:1)
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\Resolver.js:285:5
    at eval (eval at create (D:\node_global\node_modules\ewa-cli\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:27:1)
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\DescriptionFilePlugin.js:67:43
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\Resolver.js:285:5
    at eval (eval at create (D:\node_global\node_modules\ewa-cli\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:16:1)
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\Resolver.js:285:5
    at eval (eval at create (D:\node_global\node_modules\ewa-cli\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:15:1)
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\DirectoryExistsPlugin.js:27:15
    at D:\node_global\node_modules\ewa-cli\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:85:15
    at processTicksAndRejections (internal/process/task_queues.js:75:11)
    at D:\node_global\node_modules\ewa-cli\node_modules\webpack\lib\NormalModule.js:316:20
    at D:\node_global\node_modules\ewa-cli\node_modules\loader-runner\lib\LoaderRunner.js:367:11
    at D:\node_global\node_modules\ewa-cli\node_modules\loader-runner\lib\LoaderRunner.js:233:18
    at context.callback (D:\node_global\node_modules\ewa-cli\node_modules\loader-runner\lib\LoaderRunner.js:111:13)
    at D:\node_global\node_modules\ewa-cli\node_modules\ewa-webpack\lib\loaders\import-wxss-loader.js:53:5
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
 @ C:/Users/12708/WeChatProjects/em-Copy/src/miniprogram/app.wxss

ERROR in
C:\Users\12708\WeChatProjects\em-Copy\src\miniprogram\app.js
  75:29  error  Empty block statement  no-empty

C:\Users\12708\WeChatProjects\em-Copy\src\miniprogram\components\color-picker\color-picker.js
  249:13  error  Expected a conditional expression and instead saw an assignment  no-cond-assign
  252:20  error  Expected a conditional expression and instead saw an assignment  no-cond-assign

C:\Users\12708\WeChatProjects\em-Copy\src\miniprogram\pages\draw\draw.js
   477:9   error  Unexpected constant condition                    no-constant-condition
   498:12  error  Empty block statement                            no-empty
   669:9   error  Unexpected lexical declaration in case block     no-case-declarations
   669:9   error  Move function declaration to function body root  no-inner-declarations
   878:9   error  Unexpected lexical declaration in case block     no-case-declarations
   885:15  error  'layerWidth' is already defined                  no-redeclare
   886:13  error  'layerHeight' is already defined                 no-redeclare
   887:13  error  'x' is already defined                           no-redeclare
   888:13  error  'y' is already defined                           no-redeclare
   890:9   error  Unexpected lexical declaration in case block     no-case-declarations
   890:9   error  Move function declaration to function body root  no-inner-declarations
  1675:9   error  Unexpected lexical declaration in case block     no-case-declarations
  1727:9   error  Unexpected lexical declaration in case block     no-case-declarations
  1925:30  error  Empty block statement                            no-empty
  1944:9   error  Unexpected lexical declaration in case block     no-case-declarations
  1958:9   error  Unexpected lexical declaration in case block     no-case-declarations
  2887:13  error  'angle' is assigned to itself                    no-self-assign
  3136:3   error  'that' is not defined                            no-undef
  3139:5   error  'that' is not defined                            no-undef
  3144:7   error  'that' is not defined                            no-undef

C:\Users\12708\WeChatProjects\em-Copy\src\miniprogram\pages\index\index.js
  275:12  error  Empty block statement  no-empty

✖ 130 problems (24 errors, 106 warnings)

json 文件不支持 post loader 处理

  config.module.rules.push(
    {
      test: /\.(js|json|wxml|wxss)$/,
      enforce: 'post',
      loader: 'string-replace-loader',
      exclude: /node_modules/,
      options: {
        replace: (content)=> {
          content = content.replace(/\/image\//g, 'https://ceshi.com/image/')
          return content
        },
      }
    }
  );

ewa init 报错

$ ewa init
[23:53:55] [ewa] 正在初始化 ewa 项目...
[23:53:55] [ewa] 创建临时文件夹 F:\hyuzai_wx_tmp_src_
[23:53:55] [ewa] 准备移动文件或文件夹...
[23:53:55] [ewa] 正在移动 tmp_srctmp_src_tmp_src_
C:\Users\Administrator\AppData\Roaming\npm\node_modules\ewa-cli\node_modules\yargs\build\index.cjs:2772
throw err;
^

Error: Cannot move 'F:/hyuzai/wx/tmp_src' to a subdirectory of itself, 'F:\hyuzai_wx_tmp_src_tmp_src_'.
at Object.checkPathsSync (C:\Users\Administrator\AppData\Roaming\npm\node_modules\ewa-cli\node_modules\fs-extra\lib\util\stat.js:54:11)
at Object.moveSync (C:\Users\Administrator\AppData\Roaming\npm\node_modules\ewa-cli\node_modules\fs-extra\lib\move-sync\move-sync.js:14:28)
at sourceFiles.map.source (C:\Users\Administrator\AppData\Roaming\npm\node_modules\ewa-cli\lib\commands\init.js:51:8)
at Array.map ()
at init (C:\Users\Administrator\AppData\Roaming\npm\node_modules\ewa-cli\lib\commands\init.js:41:15)
at Object.require.locale.usage.command.command [as handler] (C:\Users\Administrator\AppData\Roaming\npm\node_modules\ewa-cli\lib\cli.js:29:31)
at Object.runCommand (C:\Users\Administrator\AppData\Roaming\npm\node_modules\ewa-cli\node_modules\yargs\build\index.cjs:446:48)
at Object.parseArgs [as _parseArgs] (C:\Users\Administrator\AppData\Roaming\npm\node_modules\ewa-cli\node_modules\yargs\build\index.cjs:2697:57)
at Object.get [as argv] (C:\Users\Administrator\AppData\Roaming\npm\node_modules\ewa-cli\node_modules\yargs\build\index.cjs:2651:25)
at Object. (C:\Users\Administrator\AppData\Roaming\npm\node_modules\ewa-cli\lib\cli.js:97:3)

想问一下大佬这是啥问题,是在原有的原生微信小程序上面进行初始化,大佬救救我!

页面里不支持直接 编译 .scss 文件 吗

你好~, 想问下

项目配置里设置的是使用 sass 预处理器,

页面结构大致如下:

├── pages                    小程序页面目录
│   │   ├── index
│   │   │   ├── index.js
│   │   │   ├── index.wxml
│   │   │   └── index.scss

执行 build 操作

查看 dist 目录, 发现 并没有 index.wxss 文件

是不会自动编译 scss 文件的吗?

但是,发现 index.wxss 文件里可以直接使用 scss 语法, 也会参与编译,

但如果就是想用 index.scss 文件的命名方式呢? 是我的操作不对吗?

初始化项目

安装完了ewa-cli之后,ewa new 之后报无法将“ewa”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确请问这个怎么解决。

ewa build打包运行异常,ewa start正常

环境描述:mac os 10.13.5
node:v8.11.2
配置:开启es6转es5,开启使用 npm 模块
调试基础库:2.6.5
如题,调试环境一切ok,正式build的时候一些组件无法正常显示和执行,但是并没有异常抛出。不知道是不是压缩混淆的时候出了问题,但是还是非常希望有混淆功能对代码提供了一层保护。目前使用ewa start打包的代码提交审核,再次感谢作者提供这么好的工具!

创建项目失败

ewa new xxx 报错

[09:31:04] [ewa] 初始化 ewa 项目: wx-ewa
/Users/yubtan/.config/yarn/global/node_modules/yargs/yargs.js:1133
else throw err
^

Error: /Users/yubtan/test/wx-ewa/package.json: ENOENT: no such file or directory, open '/Users/yubtan/test/wx-ewa/package.json'
at Object.fs.openSync (fs.js:577:3)
at Object.fs.readFileSync (fs.js:483:33)
at Object.readFileSync (/Users/yubtan/.config/yarn/global/node_modules/jsonfile/index.js:61:22)
at install (/Users/yubtan/.config/yarn/global/node_modules/ewa-cli/lib/commands/install.js:24:26)
at create (/Users/yubtan/.config/yarn/global/node_modules/ewa-cli/lib/commands/create.js:36:3)
at Object.require.usage.command [as handler] (/Users/yubtan/.config/yarn/global/node_modules/ewa-cli/lib/cli.js:13:33)
at Object.runCommand (/Users/yubtan/.config/yarn/global/node_modules/yargs/lib/command.js:235:44)
at Object.parseArgs [as _parseArgs] (/Users/yubtan/.config/yarn/global/node_modules/yargs/yargs.js:1046:30)
at Object.get [as argv] (/Users/yubtan/.config/yarn/global/node_modules/yargs/yargs.js:989:21)
at Object. (/Users/yubtan/.config/yarn/global/node_modules/ewa-cli/lib/cli.js:37:3)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.