babel-plugin-diff-platform

1.0.3 • Public • Published

单个ui库需要支持不同的平台适配,开发者需要每个平台不同支持,不同的样式,于是诞生了包。

安装

npm install -D babel-plugin-diff-platform

配置.babelrc

{
  "plugins": [
    ["diff-platform", {
        "platform": "pc", // 
        "path": "dist", // dist 
        "extensions": [".js", ".json", ".vue", ".jsx"] //   .js .json .vue
    }]
  ]
}

输入

import Buttons from 'vt-button'
import { join } from 'path'
const { readFile } = require('fs')
const img = require('./assets/a.png')

输出

import Buttons from "vt-button/pc";
import { join } from "path";
const { readFile } = require("fs");
const img = require("./assets/a.png");

原理

通过babel ast解析到import,require的依赖,依次迭代根据extensions包装后的路径,若命中,则返回包装后的资源,反之则返回原资源。

优劣

优势

UI库使用者一次配置,在不同平台项目只需修改platform即可,插件会自动找到对应平台的依赖。另外,兼容其他ui库的引用。

劣势

由于使用迭代,node_module中文件过多,使用babel编译会慢些。但目前现今社会机器配置已很好,不怎么影响。

Package Sidebar

Install

npm i babel-plugin-diff-platform

Weekly Downloads

19

Version

1.0.3

License

MIT

Last publish

Collaborators

  • jerret321