美文网首页
mp-parser:小程序原生单文件开发工具

mp-parser:小程序原生单文件开发工具

作者: 忐自 | 来源:发表于2019-11-20 20:57 被阅读0次

项目地址 在此

项目由来

在使用了 wepy 和 mpvue 之后,发现这些开源项目在引入一些便捷的同时也引入了另一些问题,这些问题有的可以通过难看的 hack 去解决,有的就只能盼着源代码修复,给我们造成了另外的负担。

已经因为这些运行时框架最终还是依赖于原生能力的,原生有的问题这写框架一定会有,所以我们想能不能直接用单文件开发的形式去写原生小程序?这也算是“渐进式”的开发了,于是就产生了这个工具,不做运行时的事,只做预处理,将问题最简单化。

使用方法

# 第一步,安装 mp-parser
npm install -g mp-parser

# 第二步,参考 example 文件夹自己新建目录结构

# 第三步,在项目目录下运行
mp-parser

执行 mp-parser --help 查看帮助。

配置文件

默认配置如下,如有需求可以通过修改项目下的 mpp.config.js 来进行覆盖。

module.exports = {
  // 项目根路径
  root: process.cwd(),

  // 源代码目录
  src: 'src',
  // 解析输出目录
  dist: 'dist',

  // 源代码目录中的入口 app 文件名
  app: 'app.vue',
  // 需要解析的文件夹
  needParseDirs: ['pages', 'components'],
  // 需要直接复制的文件夹
  needCopyDirs: ['images'],

  // 各标签块对应生成的扩展名
  exts: {
    template: 'wxml',
    style: 'wxss',
    script: 'js',
    config: 'json',
  },
};

功能特性

  • 支持单文件化开发原生小程序,以 .vue 扩展名结尾
  • 支持 sass/scss 编译

示例:

<config>
{
  window: {
    navigationBarTitleText: 'mp-parser'
  }
}
</config>

<template>
  <view class="red"> {{ message }} </view>
</template>

<script>
Page({
  data: {
    message: 'Hello mp-parser!'
  }
})
</script>

<style lang="scss">
$red: red;

.red {
  color: $red;
}
</style>

特殊考虑

除了希望能利用单文件的开发方式来开发小程序,其他工具多多少少有些其他功能,例如自带 js 转码压缩、引入 npm 包之类的。

加入 js 转码压缩主要是为了使用高级特性,例如 async,但我在 issue 中看到使用 async 函数会导致 ios 崩溃的问题,并且目前还不了解现在是否解决;而 es6 转 es5 和代码压缩使用开发工具自带的即可。

引入 npm 包可以说是比较需要的功能,但实际我们在开发中只使用到了一小部分包,并且一些库使用了小程序不具备的环境变量,所以在引入前应该手动确认或修改;直接拷贝 npm 包可能会造成 dist 包过大,影响最终打包体积,使用 webpack 解决依赖又会引入额外的运行时代码;我在初始化项目中已经引入了 mta 和 promise 垫片,满足一般开发需求。如果有特殊需求,会在后续考虑更优雅的加入此功能。

其实本工具并不复杂,主要就是解决了很小的一点不便,让我们更舒服的用原生而已,欢迎各位试用或 fork 改造,项目地址 在此

相关文章

  • mp-parser:小程序原生单文件开发工具

    项目地址 在此 项目由来 在使用了 wepy 和 mpvue 之后,发现这些开源项目在引入一些便捷的同时也引入了另...

  • 微信小程序基础教程(一)

    文章主要介绍: 框架 开发工具 原生微信小程序的目录结构 原生微信小程序的基本写法(装修中) 使用uni-app开...

  • 小程序 创建方法

    开发工具和创建项目 开发工具原生小程序语法开发使用mpvue开发(vue语法)使用wepy开发(.wpy) 创建新...

  • 使用WePY进行小程序开发

    一直以来开发小程序都是中规中矩的使用微信小程序开发工具,原生开发小程序。最近偶然发现了一个腾讯出品的小程序开发框架...

  • uniapp

    开发工具开发者中心如何学习?vue和微信小程序的区别、比较uni-app官方教程学习手记Vue单文件组件 (SFC...

  • 小程序:Page(Object) 构造器的几种写法

    序言:刚入手小程序,还是从原生的开始撸起,原生的类型,原生的对象,原生的开发工具,虽然诸多不习惯,但慢慢来,wep...

  • uni-app判断客户端环境是 Android、iOS 还是小程

    在百度小程序开发工具、微信小程序开发工具、支付宝小程序开发工具中使用uni.getSystemInfoSync()...

  • uni-app判断客户端环境是 Android、iOS 还是小程

    在百度小程序开发工具、微信小程序开发工具、支付宝小程序开发工具中使用uni.getSystemInfoSync()...

  • 微信小程序基础

    微信小程序介绍微信小程序开发工具的使用微信小程序框架文件微信小程序逻辑层微信小程序视图层微信小程序组件介绍微信小程...

  • 小程序开发之WePY组件框架

    简介 WePY框架对原生小程序的开发模式进行了再次封装,更贴近于MVVM架构模式。单文件模式,目录结构更清晰。 ...

网友评论

      本文标题:mp-parser:小程序原生单文件开发工具

      本文链接:https://www.haomeiwen.com/subject/uneaictx.html