weexHybirdWeex

Weex环境搭建(weexpack篇)

2017-06-14  本文已影响5534人  流转的时光

一、安装node.js

点击链接 http://nodejs.cn/download/ 选择你需要安装的版本(windows ,mac,linux 3种系统的版本),下载你需要的版本


点击安装包,下一步,下一步,安装完成即可。
执行查看node版本号
node -v

显示当前node版本号

deiMac:~ li$ node -v
v8.1.0

使用淘宝NPM源

$ npm install -g cnpm --registry=https://registry.npm.taobao.org

二、安装webpack

//全局安装
$ cnpm install -g webpack

或者

//安装到你的项目目录
$ cd 你的工程目录
$ cnpm install --save-dev webpack

三、安装serve

//全局安装
$ cnpm install -g serve

或者

//安装到你的项目目录
$ cd 你的工程目录
$ cnpm install  serve

四、安装weexpack

首先,全局安装 weex-pack 命令:

$ cnpm install -g weexpack

或者 在 clone 的 weexpack 根目录下执行

$ cnpm install
  1. 创建 weexpack 工程
$ weexpack create appName

使用WebStrom打开创建的工程目录如下



2.进入创建的工程目录,并且安装相关依赖

$ cd appName && cnpm install

安装完第三方依赖,工程目录添加了node_modules目录


weex-toolkit和weexpack的区别

weex-toolkit 初始化的项目是针对开发单个 Weex 页面而设计的,也就是说这样的项目只包括单个页面开发需要的东西,比如前端页面源文件、webpack 配置、npm 脚本等。项目产生的输出就是一个 JS Bundle 文件,可以自由的进行部署。
weex-pack 是初始化一个完整的 App 工程,包括 Android 和 iOS 的整个 App 起步,前端页面只是其中的一部分。这样的项目最终产出是一个 Android App 和一个 iOS App。

五、创建.babelrc文件

将ES6转成ES5代码执行

{ "presets": ["es2015"] }

六、创建.gitignore文件

配置git不上传的文件和文件夹

# Weex
## idea && node_modules
.idea/
node_modules/
temp/
## output files
dist/

七、在工程根目录下创建index.html文件

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Weex Preview</title>
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="apple-mobile-web-app-status-bar-style" content="black">
  <meta name="apple-touch-fullscreen" content="yes">
  <meta name="format-detection" content="telephone=no, email=no">
  <link rel="stylesheet" href="./web/assets/style.css">
  <script src="./web/assets/url.js"></script>
  <script src="./web/assets/qrcode.js"></script>
  <script src="./node_modules/vue/dist/vue.js"></script>
</head>
<body>
  <h1>Weex Preview</h1>
  <div id="app"></div>
  <template id="app-template">
    <div id="app">
      <div class="mock-phone">
        <div class="inner">
          <iframe id="preview" src="./weex.html"></iframe>
        </div>
        <div class="camera"></div>
        <div class="earpiece"></div>
        <div class="home-btn"></div>
      </div>
      <div id="qrcode">
        <h2>QRCode</h2>
        <a :href="val" target="_blank"><canvas ref="canvas" width="200" height="200"></canvas></a>
        <p class="bundle-url"><a :href="val" target="_blank">{{val}}</a></p>
      </div>
    </div>
  </template>
  <script>
    console.log('QR CODE URL: ' + url)
    new Vue({
      el: '#app',
      template: '#app-template',
      data: { val: url },
      mounted: function () {
        var qrcodedraw = new QRCodeLib.QRCodeDraw()
        qrcodedraw.draw(this.$refs.canvas, this.val, function () {})
      }
    })
  </script>
</body>
</html>

八、在工程目录下创建weex.html文件

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>weex-vue-demo</title>
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="apple-mobile-web-app-status-bar-style" content="black">
  <meta name="apple-touch-fullscreen" content="yes">
  <meta name="format-detection" content="telephone=no, email=no">
  <style>body::before { content: "1"; height: 1px; overflow: hidden; color: transparent; display: block; }</style>
  <script src="./assets/phantom-limb.js"></script>
  <script src="./node_modules/vue/dist/vue.runtime.js"></script>
  <script src="./node_modules/weex-vue-render/dist/index.js"></script>
</head>
<body>
  <div id="root"></div>
  <script src="./dist/web/index.web.js"></script>
</body>
</html>

最终的工程目录


九、修改web/assets/url.js文件

修改前

var protocol = location.protocol + '//';
var hostname = typeof CURRENT_IP === 'string' ? window.CURRENT_IP : location.hostname;
var port = location.port ? ':' + location.port : '';
var url = protocol + hostname + port + location.pathname.replace(/\/web\/index\.html$/, '/').replace(/\/$/, '/dist/app.weex.js');

修改后

var protocol = location.protocol + '//';
var hostname = typeof CURRENT_IP === 'string' ? window.CURRENT_IP : location.hostname;
var port = location.port ? ':' + location.port : '';
var url = protocol + hostname + port + location.pathname.replace(/\/index\.html$/, '/').replace(/\/$/, '/dist/native/index.js')

十、修改package.json文件

修改"dev"配置前

 "scripts": {
        "build": "webpack",
        "build_plugin": "webpack --config ./tools/webpack.config.plugin.js --color",
        "dev": "weex-builder src dist -w",
        "serve": "webpack-dev-server --config webpack.dev.js -p --open"
    }

修改"dev"配置后

"scripts": {
    "build": "webpack",
    "build_plugin": "webpack --config ./tools/webpack.config.plugin.js --color",
    "dev": "webpack --watch & serve -p 12590",
    "serve": "webpack-dev-server --config webpack.dev.js -p --open"
  }

十一、修改webpack.config.js文件
将webConfig打包到dist/web文件夹下

 output: {
    path: pathTo.join(__dirname, 'dist', 'web'),
    filename: '[name].web.js',
  }

将weexConfig打包到dist/native文件夹下

 output: {
    path: pathTo.join(__dirname, 'dist', 'native'),
    filename: '[name].js',
  }

十二、运行打包测试

cnpm run dev

打开浏览器 http://xxx.xxx.xxx.xxx:12590


appstore下载 weex playground 点击左上角扫码功能,扫网站上的二维码


现在可以开始coding调试啦

项目工程链接:https://git.oschina.net/lyjappleclub/myweex.git

进入工程目录下载第三方依赖

cnpm install

开启调试

cnpm run dev
上一篇 下一篇

猜你喜欢

热点阅读