GithubHelp home page GithubHelp logo

cdn-local's Introduction

cdn-local

这是一个cdn的下载工具,主要是希望开发测试的时候将cdn的npm包下下来使用,bower现在更新很慢,所以弄了这么个东西,现在暂时只有jsdelivr

API

这只是一个下载方法。

安装

npm install @pitue/cdn-local --save-dev
pnpm install @pitue/cdn-local --save-dev
yarn install @pitue/cdn-local --save-dev

使用

const download = require('@pitue/cdn-local')

download({
    dir: './.cache',
    dependencies: [
        {dependency: 'jquery', version: '3.7.1', alias: 'jquery', filter: download.filters.dist},
        {dependency: 'vue', version: '3.4.10'},
        {dependency: 'element-plus'}
    ],
    retry: 5
}, download.cdns.jsdelivr())

参数介绍

class File {
    type: 'file' | 'directory', 
    name: string, // 这里会拼接上级路径 
    files: File[]
    ... // 其他的暂时没用到
}

type Filter = (file: File) => boolean 
type GetVersion = (dependency: string, version?: string) => Promise<string>
type GetFiles = (dependency: string, version: string) => Promise<File[]>
type SaveFile = (dir: string, file: File, retry: number) => Promise<any>


interface CDN {
    getVersion: GetVersion
    getFiles: GetFiles
    getSaveFile: GetSaveFile
}

class Dependency {
    dependency: string // 库的名称
    version: string // 版本
    alias: string // 库的目标重命名
    filter: Filter // 返回true则下载 false则不下载
}

class Config {
    dir: string // 目标文件夹
    dependencies: Dependency[] // 下载的依赖
    retry: number // 重试次数
}

download(config: Config, cdn: CDN = download.cdns.jsdelivr())
download.filters: Filter[]
download.filters.dist // 只下载dist文件夹的文件
download.cdns: Record<string, DefineCdn>
download.cdns.jsdeliver // jsdelivr下载 参数是 sdkRoot = 'https://data.jsdelivr.com/v1/packages/npm/', cdnRoot = 'https://cdn.jsdelivr.net/npm/'

cdn-local's People

Watchers

许凯旋 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.