Git Product home page Git Product logo

webuild's Introduction

零配置, 无侵入式的小程序开发工具

Build Status Dependency Prettier Node npm version License

工欲善其事, 必先利其器

特性:

  • 支持微信/支付宝小程序
  • 零配置, 你所需要的, 都已经有了
  • 无入侵. 兼容原生开发方式. 不用更改一行代码.
  • 支持引入 NPM 模块
  • 支持 ES2015, ES2016, ES2017...
  • 强力压缩 JS, 极大节省包体积.
  • 支持图片压缩, jpg/jpeg/mozjpeg/png/gif/webp/svg
  • WXSS/WXML/JSON 压缩
  • 支持使用css/sass/less代替wxss,xml代替wxml
  • 基于 AST 压缩 WXSS/WXML(把 className 替换成 1 个字符)
  • 支持环境变量process.env, 默认有NODE_ENV. 也可以自定义变量WEBUILD_XX

该项目为开发工具, 不是小程序框架.

安装

npm install @axetroy/webuild -g

快速开始

webuild init my-mini-app
cd my-mini-app
npm start

如何使用

假设你的小程序项目目录

.
├── app.css
├── app.js
├── app.json
└── pages
    ├── detail
    │   ├── index.css
    │   ├── index.js
    │   └── index.xml
    └── index
        ├── index.css
        ├── index.js
        └── index.xml

创建一个src目录,并且把小程序项目源码放在src目录下, 并且运行

# 运行命令, 监听文件变化并打包编译
webuild dev

# 发布项目
webuild build

源码 src 已被编译至 dist 目录.

打开微信/支付宝开发者工具, 加载 dist 目录即可

需要关闭 ES6转ES5 选项

命令行

$ webuild --help

   webuild 0.3.5 - 零配置无侵入式的微信小程序开发工具
     
   USAGE

     webuild <command> [options]

   COMMANDS

     init <name>         初始化一个新项目                   
     dev                 以开发模式运行                     
     build               构建生产模式                       
     help <command>      Display help for a specific command

   GLOBAL OPTIONS

     -h, --help         Display help                                      
     -V, --version      Display version                                   
     --no-color         Disable colors                                    
     --quiet            Quiet mode - only displays warn and error messages
     -v, --verbose      Verbose mode - will also output debug messages

Example

  • Official: 官方小程序组件
  • CNode: 试验下的 CNode 社区
  • Icehome: 冰冰家纯手工店小程序

Contributing

Contributing Guide

如果你觉得项目不错,不要吝啬你的 star.

长期造轮子,欢迎 follow.

Contributors


Axetroy

💻 🐛 🎨

License

FOSSA Status

webuild's People

Contributors

axetroy avatar greenkeeper[bot] avatar imgbotapp 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

Watchers

 avatar  avatar

webuild's Issues

分包js代码分离

I'm submitting a ... (check one with "x")

  • bug report => search github for a similar issue or PR before submitting
  • feature request
  • support request

Current behavior

分包中的js代码也会和主包中的js代码打包到一起

Expected behavior

分包中的js代码打包到分包文件夹中

More detail

Please tell us about your environment:

webuild init 时出现 Unhandled Rejection 错误

版本:[email protected]

在桌面或者其他子文件夹输入 webuild init shouwang-app
出现报错:

 Desktop webuild init shouwang-app
[91259]: start
Unhandled Rejection at: { Error: ENOENT: no such file or directory, lstat '/Users/daijie/Desktop/template'
  errno: -2,
  code: 'ENOENT',
  syscall: 'lstat',
  path: '/Users/daijie/Desktop/template' } reason: Promise {
  <rejected> { Error: ENOENT: no such file or directory, lstat '/Users/daijie/Desktop/template'
  errno: -2,
  code: 'ENOENT',
  syscall: 'lstat',
  path: '/Users/daijie/Desktop/template' } }
[91259]: exit with code 0
  • bug report => search github for a similar issue or PR before submitting
  • feature request
  • support request

Current behavior

Expected behavior

More detail

Please tell us about your environment:
Mac OS X 10.13.4, node v8.9.3

运行不起来

ReferenceError: Unknown plugin "transform-runtime" specified in "base" at 0, attempted to resolve relative to "/Users/xxx/xxx/wxapp/dist"
at /usr/local/lib/node_modules/@axetroy/webuild/node_modules/.6.26.0@babel-core/lib/transformation/file/options/option-manager.js:180:17
at Array.map ()
at Function.normalisePlugins (/usr/local/lib/node_modules/@axetroy/webuild/node_modules/.6.26.0@babel-core/lib/transformation/file/options/option-manager.js:158:20)
at OptionManager.mergeOptions (/usr/local/lib/node_modules/@axetroy/webuild/node_modules/.6.26.0@babel-core/lib/transformation/file/options/option-manager.js:234:36)
at OptionManager.init (/usr/local/lib/node_modules/@axetroy/webuild/node_modules/.6.26.0@babel-core/lib/transformation/file/options/option-manager.js:368:12)
at File.initOptions (/usr/local/lib/node_modules/@axetroy/webuild/node_modules/.6.26.0@babel-core/lib/transformation/file/index.js:212:65)
at new File (/usr/local/lib/node_modules/@axetroy/webuild/node_modules/.6.26.0@babel-core/lib/transformation/file/index.js:135:24)
at Pipeline.transform (/usr/local/lib/node_modules/@axetroy/webuild/node_modules/.6.26.0@babel-core/lib/transformation/pipeline.js:46:16)
at /usr/local/lib/node_modules/@axetroy/webuild/node_modules/.6.26.0@babel-core/lib/api/node.js:134:18
at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:511:3)

最后又出现 了这样的情况
qq20180201-143445 2x

es6 对象使用展开运算符报错

ERROR in ./src/pages/user/share_coupon/index.js
Module build failed: SyntaxError: Unexpected token (91:6)

89 | };
90 | let { id, share_title, share_image } = {

91 | ...shareInfo,
| ^
92 | ...e.target.dataset
93 | };
94 | let that = this;

安装时就报错了

npm 安装就报错了

npm verb stack SyntaxError: Unexpected end of JSON input while parsing near '.../UdqgMV/+40KCaK6AfRry'
npm verb stack     at JSON.parse (<anonymous>)
npm verb stack     at parseJson (/usr/local/lib/node_modules/npm/node_modules/json-parse-better-errors/index.js:7:17)
npm verb stack     at consumeBody.call.then.buffer (/usr/local/lib/node_modules/npm/node_modules/node-fetch-npm/src/body.js:96:50)
npm verb stack     at process._tickCallback (internal/process/next_tick.js:68:7)

Action required: Greenkeeper could not be activated 🚨

🚨 You need to enable Continuous Integration on all branches of this repository. 🚨

To enable Greenkeeper, you need to make sure that a commit status is reported on all branches. This is required by Greenkeeper because it uses your CI build statuses to figure out when to notify you about breaking changes.

Since we didn’t receive a CI status on the greenkeeper/initial branch, it’s possible that you don’t have CI set up yet. We recommend using Travis CI, but Greenkeeper will work with every other CI service as well.

If you have already set up a CI for this repository, you might need to check how it’s configured. Make sure it is set to run on all new branches. If you don’t want it to run on absolutely every branch, you can whitelist branches starting with greenkeeper/.

Once you have installed and configured CI on this repository correctly, you’ll need to re-trigger Greenkeeper’s initial pull request. To do this, please delete the greenkeeper/initial branch in this repository, and then remove and re-add this repository to the Greenkeeper App’s white list on Github. You'll find this list on your repo or organization’s settings page, under Installed GitHub Apps.

有一个疑问

项目都build到了dist,但是发布的时候,还是去pages找的吧

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.