npm.io
0.0.1 • Published 5 years ago

@lsky/preset-data

Licence
MIT
Version
0.0.1
Deps
2
Size
9 kB
Vulns
23
Weekly
0
Stars
1

@lsky/preset-data

在编译期,在项目中,预设数据。

使用方法

安装

$ yarn add @lsky/preset-data
添加 loader

在babel-loader处增加PresetDataLoader

{
  test: /\.(js|jsx)$/,
  exclude: /node_modules/,
  use: [
    "babel-loader",
    {
      loader: "@lsky/preset-data/loader",
    },
  ],
},
添加 plugin
const PresetDataPlugin = require("@lsky/preset-data/plugin")
plugins: [
  new PresetDataPlugin([
    {
      name: "jobs", // 必须参数
      // -------
      // fetch 请求参数请参照 axios 配置
      url: "http://localhost:8030/test",  // required
      method: "get",
      //-------
      cb: (data) => {
        // axios response data
        // must return data
        return data.data
      },
    },
  ]),
  new HtmlWebPackPlugin({
    template: path.resolve(__dirname, "../index.ejs"),
    filename: path.resolve(__dirname, "../dist/index.html"),
  }),
],
PresetDataPlugin 使用说明
interface Option extends axios.AxiosRequestConfig {
  name: string;
  cb?: (responseData: any) => data:any;
  raw?: any;
}
new PresetDataPlugin(options: (Option | Option[]))
Name Type Default Description
name string null 预设数据名称,用于项目中取值。注意,该字段必填。
cb function null 处理数据
raw any null 如设置了 raw,将不通过 request 获取数据。注意,该优先级较高。
项目中使用预设数据
import presetDataFunc from "@lsky/preset-data"

console.log(presetDataFunc("jobs")) // 参数是 plugin 的 name
console.log(presetDataFunc())

Keywords