0.2.1 • Published 1 year ago

taro-plugin-polymorphic v0.2.1

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

taro-plugin-polymorphic

Taro 细分平台文件区分。

Taro 中支持通过平台扩展名来为不同的平台设计代码,比如 index.h5.jsx, index.weapp.jsx

taro-plugin-polymorphic 插件支持进一步拆分细分平台,比如 index.h5.wxoa.jsxindex.rn.ios.jsx

或者其他多业态场景, 比如 零售业态 index.retail.jsx、 地产业态 index.estate.tsx

Usage

安装

$ yarn add taro-plugin-polymorphic -D # or npm i taro-plugin-polymorphic --save-dev

配置

// config/index.js

const config = {
  // ...
  plugins: ['taro-plugin-polymorphic'],
  // ...
};

默认根据 INDUSTRY 环境变量来指定细分平台。这个支持配置:

// config/index.js

const config = {
  // ...
  plugins: [{'taro-plugin-polymorphic', {typeName: 'INDUSTRY'}}],
  // ...
};

运行并指定细分平台类型:

// package.json
{
  "scripts": {
    // ...
    "dev:weapp": "npm run build:weapp -- --watch",
    "dev:weapp:retail": "cross-env INDUSTRY=retail npm run dev:weapp",
    "dev:weapp:estate": "cross-env INDUSTRY=estate npm run dev:weapp"
  }
}

使用

假设模块组织如下:

index.retail.ts
index.estate.ts
index.ts

当使用 INDUSTRY 环境变量指定为 retail 时, 将优先加载 index.retail.ts。

在 Javascript 模块中获取 INDUSTRY:

if (process.env.INDUSTRY === 'retail') {
  // 零售业态
} else {
  // 默认业态
}

注意事项

  • app.config.ts 不支持。你可以通过 process.env. 来区分不同业态
  • 仅支持 JavaScript 文件。对于 CSS、图片等静态资源必须全命名导入。举个例子
    • foo.demo.ts, 手动导入 foo.demo.css
    • foo.ts, 导入 foo.css
0.2.1

1 year ago

0.2.0

2 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago