@effortlessmotion/dynamic-cdn-webpack-plugin

中文文档
5.0.1发布于 2021/07/04MITCommonJS近 30 天下载 1.3万

动态地从Cdn中获取你的依赖性,而不是在你的应用程序中捆绑它们

中文使用文档
文档目录9 节
  1. 安装
  2. 与网页包兼容
  3. 使用 HtmlWebpack Plugin 软件
  4. 带有显式胶片的使用
  5. API 密码
  6. 动态CdnWebpack Plugin( 选项)
  7. 相关
  8. 贡献者
  9. 许可证

动态- cdn- webpack- 插件

npm Build Status codecov David XO code style

动态地从Cdn中获取你的依赖性,而不是在你的应用程序中捆绑它们

警告: 这个模块是来自 https://github.com/mastilver/动态-cdn-webpack-plugin (中文(简体) ) 用于支持 Webpack 5.

安装

$ npm install --save-dev dynamic-cdn-webpack-plugin module-to-cdn

与网页包兼容

使用时 webpack --version <= 3 您应该安装以下命令 .

$ npm install --save-dev [email protected] module-to-cdn

使用 HtmlWebpack Plugin 软件

webpack.config.js

const path = require('path');

const HtmlWebpackPlugin = require('html-webpack-plugin');
const DynamicCdnWebpackPlugin = require('dynamic-cdn-webpack-plugin');

module.exports = {
    entry: {
        'app.js': './src/app.js'
    },

    output: {
        path.resolve(__dirname, './build'),
    },

    plugins: [
        new HtmlWebpackPlugin(),
        new DynamicCdnWebpackPlugin()
    ]
}

app.js

import React from 'react';
import { BrowserRouter } from 'react-router-dom';

// ... do react stuff

webpack --mode=production 将生成:

/* simplified webpack build */
[function(module, __webpack_exports__, __webpack_require__) {
    module.exports = React;
}),
(function(module, __webpack_exports__, __webpack_require__) {
    module.exports = ReactRouterDOM;
}),
(function(module, __webpack_exports__, __webpack_require__) {
    var react = __webpack_require__(0);
    var reactRouterDOM = __webpack_require__(1);

    /* ... */
})]
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Webpack App</title>
  </head>
  <body>
    <script type="text/javascript" src="https://unpkg.com/[email protected]/dist/react.min.js"></script><script type="text/javascript" src="https://unpkg.com/[email protected]/umd/react-router-dom.min.js"></script><script src="build/app.js"></script></body>
</html>

带有显式胶片的使用

webpack.config.js

const path = require('path');

const ManifestPlugin = require('webpack-manifest-plugin');
const DynamicCdnWebpackPlugin = require('dynamic-cdn-webpack-plugin');

module.exports = {
    entry: {
        'app': './src/app.js'
    },

    output: {
        path.resolve(__dirname, './build'),
    },

    plugins: [
        new ManifestPlugin({
            fileName: 'manifest.json'
        }),
        new DynamicCdnWebpackPlugin()
    ]
}

app.js

import React from 'react';
import { BrowserRouter } from 'react-router-dom';

// ... do react stuff

webpack --mode=production 将生成:

/* simplified webpack build */
[function(module, __webpack_exports__, __webpack_require__) {
    module.exports = React;
}),
(function(module, __webpack_exports__, __webpack_require__) {
    module.exports = ReactRouterDOM;
}),
(function(module, __webpack_exports__, __webpack_require__) {
    var react = __webpack_require__(0);
    var reactRouterDOM = __webpack_require__(1);

    /* ... */
})]
{
    "app.js": "app.js",
    "react.js": "https://unpkg.com/[email protected]/dist/react.min.js",
    "react-router-dom.js": "https://unpkg.com/[email protected]/umd/react-router-dom.min.js"
}

API 密码

动态CdnWebpack Plugin( 选项)

webpack.config.js

const DynamicCdnWebpackPlugin = require('dynamic-cdn-webpack-plugin');

module.exports = {
    mode: 'production',
    plugins: [
        new DynamicCdnWebpackPlugin(options)
    ]
}

选项

类型 : boolean
默认 : false

在下线工作时有用,会回落到网络包装正常行为

选项.env

类型 : string
默认 : mode
数值 : development, (中文(简体) ), production

确定是否应该加载模块的开发或制作版本

选项

类型 : Array<string> 默认 : null

列出应该由 cdn 提供的唯一模块

选项

类型 : Array<string> 默认 : []

列出总是捆绑的模块( cdn 无法提供)

选项。动词

类型 : boolean
默认 : false

记录库是否由 cdn 服务或捆绑

选项.resolver

类型 : string, (中文(简体) ), function
默认 : 'module-to-cdn'

允许您定义自定义模块解析器, 它可以是 function 或 npm 模块. 解决者应返回(或以承诺的形式解决) null 或一个 object 带有密钥 : name, (中文(简体) ), var, (中文(简体) ), url, (中文(简体) ), version。 。 。 .

贡献者

感谢这些伟大的人emoji 密钥:


托马斯·西勒格姆

💻 📖 ⚠️

费赞

💬 💻 📖

迈克尔·杰克逊

💡

联邦

💻

凯文·马拉科夫

💻

本项目遵循 全部贡献者 规格。 任何捐款都欢迎!

许可证

麻省理工学院 托马斯·西勒格姆

版本与发布记录

@effortlessmotion/dynamic-cdn-webpack-plugin 共发布 2 个版本,首次发布于 2021/07/04;过去 12 个月发布了 0 个版本。

版本发布日期距今
5.0.1latest2021/07/045 年前
5.0.02021/07/045 年前

关于 @effortlessmotion/dynamic-cdn-webpack-plugin 的常见问题

@effortlessmotion/dynamic-cdn-webpack-plugin 是什么?

动态地从Cdn中获取你的依赖性,而不是在你的应用程序中捆绑它们

如何安装 @effortlessmotion/dynamic-cdn-webpack-plugin?

在项目目录运行 npm install @effortlessmotion/dynamic-cdn-webpack-plugin,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:webpack(>=5)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@effortlessmotion/dynamic-cdn-webpack-plugin 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/effortlessmotion__dynamic-cdn-webpack-plugin 是否存在。

@effortlessmotion/dynamic-cdn-webpack-plugin 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@effortlessmotion/dynamic-cdn-webpack-plugin 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=10.13.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@effortlessmotion/dynamic-cdn-webpack-plugin 可以商用吗?

@effortlessmotion/dynamic-cdn-webpack-plugin 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@effortlessmotion/dynamic-cdn-webpack-plugin 的下载量有多少?

根据 npm 官方下载统计,@effortlessmotion/dynamic-cdn-webpack-plugin 在 2026/10/13 – 2026/11/11 这 30 天内被下载 12,763 次,日均约 425 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@effortlessmotion/dynamic-cdn-webpack-plugin 还在维护吗?

最新版本 5.0.1 发布于 2021/07/04(5 年前);至今共发布 2 个版本,其中过去 12 个月发布了 0 个;首次发布于 2021/07/04。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。