npm 包 crossorigin-webpack-plugin 使用教程

当我们在使用 Webpack 打包项目时,常常会遇到如下问题:引入的外部资源的 URL 不是以 httphttps 开头,导致资源载入失败,这时候我们需要在资源 URL 前面添加 crossorigin 属性。而 crossorigin-webpack-plugin 就是一个解决这个问题的 npm 包。下面为大家详细介绍它的使用方法。

什么是 crossorigin-webpack-plugin?

crossorigin-webpack-plugin 是一个 Webpack 插件,它可以自动给 Webpack 打包生成的 js 文件中的静态资源加上 crossorigin 属性,避免了跨域问题,特别适用于 CDN 资源。

安装

安装 crossorigin-webpack-plugin,只需要在项目目录下执行以下命令:

--- ------- -------------------------- ----------

使用方法

在使用 crossorigin-webpack-plugin 之前,我们需要了解一下 crossorigin 属性以及它的属性值,这对后面的插件设置很有帮助。

crossorigin 属性

该属性在 CORS(跨域资源共享)中使用。它告诉浏览器,是否有权利将一个请求交给其他的源,以便该源可以使用该请求的返回数据。

该属性具有以下属性值:

  • anonymous:跨域请求会发送 origin 头部但不会发送带有凭据的请求头部。
  • use-credentials:跨域请求会发送 origin 和 cookie 头部。

配置插件

webpack.config.js 文件中的 plugins 下添加如下代码:

----- ------------------------ - -------------------------------------

-------------- - -
    -- ---
    -------- -
      --- --------------------------
        ------------ -----------------
      --
    -
-

以上配置表示,将资源 URL 前添加 crossorigin 属性,属性值为 use-credentials

另外,我们还可以将该插件的函数封装到一个自己定义的函数中,以便实现更为复杂的功能。示例如下:

----- ------------------------ - -------------------------------------

-------- ---------------------- -
  ------ -
    -----------
    -------- -
      --- --------------------------
        ------------ -----------------
      ---
      -- -------
    -
  -
-

示例代码

以下是一个简单示例代码,用来显示如何使用 crossorigin-webpack-plugin,以及观察资源 URL 是否正常添加了 crossorigin 属性。

webpack.config.js 文件中添加如下代码:

----- ---- - ---------------
----- ----------------- - ------------------------------
----- - ------------------ - - -------------------------------
----- ------------------------ - -------------------------------------


-------------- - -
    ----- --------------
    -------- --------------------
    ------ -----------------
    ------- -
        --------- --------------------------
        ----- ----------------------- --------
    --
    ------------- -
        ---------- ---------
        ------------ -
            ------------ -
                ------- -
                    ----- -------------------------
                    ----- ----------
                    ------- ------
                --
            --
        --
        ------------- ---------
    --
    -------- -
        --- ---------------------
        --- -------------------
            ------ ----------
        ---
        --- --------------------------
            ------------ -----------
        ---
    --
    ------- -
        ------ -
            -
                ----- ---------
                ---- ---------------- --------------
            --
        --
    --
-

以上代码将会在资源 URL 中添加 crossorigin="anonymous"。此外,在 index.html 中,我们也需要引进外部资源。假设外部资源如下:

------
  --------- ----------
  ------- -----------------------------------------------------------
  ------- -------------------------------
-------

其中,script.js 为引进本地资源。接下来,我们通过浏览器打开生成的 index.html 网页,检查其资源 URL 是否已成功添加 crossorigin 属性:

------
  --------- ----------
  ------- ------------------------------------------------- ---------------------------------
  ------- --------------------- ---------------------------------
-------

可以看到,通过使用 crossorigin-webpack-plugin,我们成功在资源 URL 前添加了 crossorigin 属性。这样,浏览器进行跨域请求时,就可以顺利加载外部资源了。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6006734f890c4f727758384a


猜你喜欢

  • npm 包 teqfw-core-app 使用教程

    介绍 teqfw-core-app 是基于 Vue 框架的前端应用框架,提供了一系列通用组件以及一些通用功能。这个框架主要是为了提高项目开发效率而设计的,它的核心思想就是使用代码复用来减少重复劳动和提...

    4 年前
  • npm 包 teqfw-core-all 使用教程

    前言 在前端开发过程中,使用 npm 包已经成为了不可或缺的一部分。不光是为了节省开发的时间,还为我们提供了许多强大的功能和工具。本篇文章将介绍一个名为 teqfw-core-all 的 npm 包,...

    4 年前
  • npm 包 @dfeidao/fd-w000026 使用教程

    简介 @dfeidao/fd-w000026 是一款基于 Vue.js 框架的前端 UI 组件库,包含了多种常用的 UI 组件,如按钮、文本框、下拉框、表格等。该组件库的设计风格简洁清爽,易于使用和扩...

    4 年前
  • npm 包 @dfeidao/fd-wh000009 使用教程

    前言 @dfeidao/fd-wh000009 是一款前端工具包,提供了多种工具类函数和组件,方便进行前端开发。本文旨在介绍该npm包的使用方法,帮助读者更好地了解和使用该包。

    4 年前
  • npm 包 @dfeidao/fd-wh000010 使用教程

    在前端开发中,我们通常会使用诸如 jQuery、React 等第三方库或框架来加速开发进程。而其中也有许多 npm 包,可以供我们使用。本文将介绍 npm 包 @dfeidao/fd-wh000010...

    4 年前
  • npm 包 @dfeidao/fd-wh000013 使用教程

    前言 在前端开发过程中,为了提高工作效率,很多开发者会使用各种工具包和库。其中,npm 包是一个非常常见的工具,它可以让我们轻松地引入一些常用的功能模块、样式库和插件等。

    4 年前
  • npm 包 @dfeidao/fd-wh000015 使用教程

    背景 @dfeidao/fd-wh000015 是一个前端开发中常用的 npm 包,它提供了一些常用的工具和方法,使得前端开发更加简单和高效。在本文中,我们将详细讲解如何使用该 npm 包。

    4 年前
  • npm 包 @dfeidao/fd-wh000014 使用教程

    简介 npm(Node Package Manager)是一种包管理器,可用于从开发者发布到公共注册表的命令行工具、库及框架等软件包中查找、安装和管理依赖项。本篇文章将介绍 npm 包 @dfeida...

    4 年前
  • npm 包 @dfeidao/fd-wh000016 使用教程

    什么是 @dfeidao/fd-wh000016 @dfeidao/fd-wh000016 是一个提供常用 UI 组件的 npm 包。它包含了各种常用的界面组件,如按钮、表单、菜单等等。

    4 年前
  • npm 包 relog 使用教程

    在前端开发中,日志是一个非常重要的调试工具,能够帮助我们快速定位问题所在,提高开发效率。npm 包 relog 是一个轻量级的 JavaScript 日志记录器。它提供了易用的 API 以及丰富的功能...

    4 年前
  • npm 包 @saltzmanjoelh/meteor-deployer 使用教程

    在 web 开发中,使用 Meteor 框架来创建实时 web 应用是较为常见的选择。而在将应用部署到云服务器时,手动部署是比较耗时且容易出错的。因此,使用自动化部署工具可以提高我们的工作效率和减少出...

    4 年前
  • npm 包 @rossoorg/password 使用教程

    介绍 @rossoorg/password 是一个用于生成密码的 npm 包,可以用于前端应用或 Node.js 应用中。此包支持生成具有高强度的密码,同时可自定义密码长度和字符类型。

    4 年前
  • npm 包 @smpx/slack 使用教程

    在现代的前端开发中,使用一些基础的 npm 包可以让我们的开发效率大幅提高。其中,@smpx/slack 这个包可以帮助我们在 Slack 上进行消息的推送和处理,非常实用。

    4 年前
  • npm 包 aliba 使用教程

    什么是 aliba? aliba 是一个基于阿里云的 Node.js 库。它封装了阿里云 OSS API,可以轻松地在 Node.js 项目中实现对阿里云 OSS 的访问和管理。

    4 年前
  • npm 包 @yincw/rework 使用教程

    简介 @yincw/rework 是一个基于 rework 的 CSS 处理器,可以对 CSS 进行修改和重构。它可以被用于前端项目中,作为构建工具的一部分,以便我们可以自动化地处理 CSS。

    4 年前
  • npm包nst-react-component使用教程

    nst-react-component是一个强大的组件库,可以帮助你开发高质量的React组件,极大提高了开发效率和代码质量。在本文中,我们将详细了解如何使用nst-react-component进行...

    4 年前
  • npm 包 hsuicomponent 使用教程

    简介 hsuicomponent 是一款强大的前端 UI 库,包含了丰富的 UI 组件,可大大提高前端开发效率,减少重复代码的编写。该库基于 Vue.js 构建,提供了众多易于使用的组件,如按钮、表单...

    4 年前
  • NPM包 rc-editor-jsonschema 使用教程

    在前端开发中,经常需要生成表单等界面元素。如果每次都手动编写表单的结构和验证规则,不仅繁琐而且容易出错。rc-editor-jsonschema就提供了一种快速生成表单的解决方案。

    4 年前
  • Vue-Access-Control 包使用指南

    在现代化的 Web 应用中,权限控制模块是其中必不可少的一部分。它们一方面可以管理和控制用户的操作,另一方面也可以保护 Web 应用防止恶意操作。Vue-Access-Control 是一个强大的 n...

    4 年前
  • npm 包 nodefswork 使用教程

    如果你是一名前端开发者,你一定不会陌生于使用 npm 包管理器以及各种常用的 npm 包。而今天要介绍的 nodefswork 包,将会给你带来惊喜。本文将会介绍 nodefswork 的使用方法,让...

    4 年前

相关推荐

    暂无文章