@uyun/cli-webpack-autocdn
根据项目引入的库,自动切换为cdn
Last updated 6 years ago by chengdiao .
ISC ·
$ cnpm install @uyun/cli-webpack-autocdn 
Private package

@uyun/cli-webpack-autocdn

定义 cdn 列表,根据项目使用 cdn 的情况自动写入 cdn 链接地址

使用方式

在使用了@uyun/cli的项目中直接安装@uyun/cli-webpack-autocdn即可自动启动插件

AutoCDNWebpackPlugin 使用示例

注意:

  • 本插件需配合html-webpack-plugin一起使用
  • cdn 列表不能存在循环引用,否则插件会报错

webpack.config.js

import AutoCDNWebpackPlugin from '@uyun/cli-webpack-autocdn/plugin'

const cdns = [
  {
    name: '@uyun-cdn',
    packages: ['core-js', 'raf/polyfill'],
    dependencies: [],
    src: [
      {
        type: 'js',
        url: '/lib/R0.1/@uyun-cdn/development/@uyun-cdn.js'
      }
    ]
  },
  {
    name: '@uyun-charts',
    packages: ['@uyun/charts'],
    dependencies: ['@uyun-cdn', 'classnames-bundle', 'lodash-bundle', 'react-bundle', 'redux-bundle'],
    src: [
      {
        type: 'js',
        url: '/lib/R0.1/@uyun-charts/development/@uyun-charts.js'
      }
    ]
  },
  {
    name: '@uyun-components',
    packages: ['@uyun/components'],
    dependencies: ['@uyun-cdn', 'classnames-bundle', 'lodash-bundle', 'moment-bundle', 'react-bundle'],
    src: [
      {
        type: 'js',
        url: '/lib/R0.1/@uyun-components/development/@uyun-components.js'
      },
      {
        type: 'css',
        url: '/lib/R0.1/@uyun-components/development/@uyun-components.css'
      }
    ]
  },
  {
    name: '@uyun-ec-basic-layout',
    packages: ['@uyun/ec-basic-layout'],
    dependencies: ['@uyun-cdn', '@uyun-components', 'react-bundle'],
    src: [
      {
        type: 'js',
        url: '/lib/R0.1/@uyun-ec-basic-layout/development/@uyun-ec-basic-layout.js'
      },
      {
        type: 'css',
        url: '/lib/R0.1/@uyun-ec-basic-layout/development/@uyun-ec-basic-layout.css'
      }
    ]
  },
  {
    name: '@uyun-utils',
    packages: ['@uyun/utils'],
    dependencies: ['@uyun-cdn', 'axios-bundle'],
    src: [
      {
        type: 'js',
        url: '/lib/R0.1/@uyun-utils/development/@uyun-utils.js'
      }
    ]
  },
  {
    name: 'axios-bundle',
    packages: ['axios'],
    dependencies: ['@uyun-cdn'],
    src: [
      {
        type: 'js',
        url: '/lib/R0.1/axios-bundle/development/axios-bundle.js'
      }
    ]
  },
  {
    name: 'classnames-bundle',
    packages: ['classnames'],
    dependencies: ['@uyun-cdn'],
    src: [
      {
        type: 'js',
        url: '/lib/R0.1/classnames-bundle/development/classnames-bundle.js'
      }
    ]
  },
  {
    name: 'lodash-bundle',
    packages: ['lodash'],
    dependencies: ['@uyun-cdn'],
    src: [
      {
        type: 'js',
        url: '/lib/R0.1/lodash-bundle/development/lodash-bundle.js'
      }
    ]
  },
  {
    name: 'mobx-bundle',
    packages: ['mobx', 'mobx-react'],
    dependencies: ['@uyun-cdn', 'react-bundle'],
    src: [
      {
        type: 'js',
        url: '/lib/R0.1/mobx-bundle/development/mobx-bundle.js'
      }
    ]
  },
  {
    name: 'moment-bundle',
    packages: ['moment'],
    dependencies: ['@uyun-cdn'],
    src: [
      {
        type: 'js',
        url: '/lib/R0.1/moment-bundle/development/moment-bundle.js'
      }
    ]
  },
  {
    name: 'react-bundle',
    packages: ['react', 'react-dom', 'prop-types'],
    dependencies: ['@uyun-cdn'],
    src: [
      {
        type: 'js',
        url: '/lib/R0.1/react-bundle/development/react-bundle.js'
      }
    ]
  },
  {
    name: 'react-router-bundle',
    packages: ['history', 'react-router', 'react-router-dom'],
    dependencies: ['@uyun-cdn', 'react-bundle'],
    src: [
      {
        type: 'js',
        url: '/lib/R0.1/react-router-bundle/development/react-router-bundle.js'
      }
    ]
  },
  {
    name: 'redux-bundle',
    packages: ['redux', 'react-redux'],
    dependencies: ['@uyun-cdn', 'react-bundle'],
    src: [
      {
        type: 'js',
        url: '/lib/R0.1/redux-bundle/development/redux-bundle.js'
      }
    ]
  },
  {
    name: 'rxjs-bundle',
    packages: ['rxjs'],
    dependencies: ['@uyun-cdn'],
    src: [
      {
        type: 'js',
        url: '/lib/R0.1/rxjs-bundle/development/rxjs-bundle.js'
      }
    ]
  }
]

module.exports = {
  externals: cdns.reduce((externals, { packages }) => {
    packages.forEach(name => {
      externals[name] = `window.__UYUN_CDN__.require('${name}')`
    })
    return externals
  }, {}),
  plugins: [new AutocdnWebpackPlugin(cnds)]
  // 其他配置
}

Current Tags

  • 0.1.16                                ...           latest (6 years ago)

30 Versions

  • 0.0.1                                ...           6 years ago
  • 0.0.2                                ...           6 years ago
  • 0.0.3                                ...           6 years ago
  • 0.0.4                                ...           6 years ago
  • 0.0.5                                ...           6 years ago
  • 0.0.6                                ...           6 years ago
  • 0.0.7                                ...           6 years ago
  • 0.0.8                                ...           6 years ago
  • 0.0.9                                ...           6 years ago
  • 0.0.10                                ...           6 years ago
  • 0.0.11                                ...           6 years ago
  • 0.0.12                                ...           6 years ago
  • 0.0.13                                ...           6 years ago
  • 0.0.14                                ...           6 years ago
  • 0.0.15                                ...           6 years ago
  • 0.0.16                                ...           6 years ago
  • 0.0.17                                ...           6 years ago
  • 0.1.0                                ...           6 years ago
  • 0.1.1                                ...           6 years ago
  • 0.1.2                                ...           6 years ago
  • 0.1.3                                ...           6 years ago
  • 0.1.5                                ...           6 years ago
  • 0.1.6                                ...           6 years ago
  • 0.1.9                                ...           6 years ago
  • 0.1.10                                ...           6 years ago
  • 0.1.11                                ...           6 years ago
  • 0.1.12                                ...           6 years ago
  • 0.1.14                                ...           6 years ago
  • 0.1.15                                ...           6 years ago
  • 0.1.16                                ...           6 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 0
Dependencies (2)
Dependents (0)
None

Copyright 2013 - present © cnpmjs.org