如何使用Webpack处理外部模块中的url(...)

丹尼尔·范·米尔

我具有在外部模块X(node_modules中的另一个包)中定义的样式,例如:

  • src
    • my-module.js
  • node_modules
    • x.js

该模块包含以下内容:

// FIXME: remove disable comment after https://github.com/palantir/tslint/issues/3987 is released
// Fonts and other resources are relative to the module that imports this style module, so calculate the URL
let url = import.meta.url;
url = url.replace(url.split("/").pop(), "");
/* tslint:enable */
// See also issue #1433 about font loading
export let typo = `

@font-face {
    font-family: 'HelveticaNeueLTStd-Roman';
    src: url('${url}/../../../fonts/Helvetica_Neue/398D5F_0_0.woff2')  format('woff2');
};

如何使webpack处理/处理url()内容,以便webpack替换url并将图像/字体等复制到输出目录?我知道在加载的CSS中执行相同的逻辑,但是在我的用例中,样式包含在JS模块中。

谢谢。

编码器

不要这样 试图使Webpack足够智能以在JS文件中找到每个字符串(以后可能用作内联样式)没有任何意义。

相反,您应该使用复制插件将依赖项的资产移动到预期的位置。例如,我使用一个名为的包cesium,在我的配置中,我有类似

import CopyPlugin from "copy-webpack-plugin";

export const cesiumSource = resolve("./node_modules/cesium/Source");
export const cesiumTarget = "CesiumStatic";

module.exports = {
    // ...
    plugins: [
        new CopyPlugin({
            patterns: [{
                from: join(cesiumSource, "Assets"),
                to: cesiumTarget + "/Assets",
            }]
        })
    ]
}

这会将整个资产树复制到./dist/CesiumStatic/Assets程序包在运行时提供了一种机制,告诉它期望资产位于何处,并使用我给它的路径为字体,JSON数据,图像等构建URL。

您的依赖项看起来像是不太可配置的,只是希望它包含在中/fonts/您需要设置一个CopyPlugin以从字体文件的存储位置(大概是./node_modules/x/fonts/?)获取字体文件,并将其放置在构建目录中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何包含来自外部URL的Webpack模块?

来自分类Dev

如何在React + Webpack中安装和配置外部模块

来自分类Dev

如何使用我的模块作为 webpack 项目中的外部库?

来自分类Dev

使用WebPack + TypeScript定义导入的外部模块

来自分类Dev

从Python中的外部模块退出(信号处理)

来自分类Dev

如何使用onRequestPermissionsResult处理React Native Android模块中的权限?

来自分类Dev

如何使用Webpack在另一个模块中要求预编译的模块?

来自分类Dev

如何为模块子目录编写外部webpack

来自分类Dev

解决Webpack中的外部子模块依赖性

来自分类Dev

编译TypeScript时如何处理外部模块?

来自分类Dev

如何使用 IIS 重写模块删除 url 中的锚点?

来自分类Dev

找不到Webpack外部模块

来自分类Dev

使用webpack处理具有外部依赖关系的AMD库

来自分类Dev

如何在webpack中包含外部文件

来自分类Dev

如何在 NodeJS 模块中处理资产

来自分类Dev

如何使用多处理模块杀死进程?

来自分类Dev

如何将蓝牙模块与多处理模块结合使用?

来自分类Dev

如何处理外部进程中的空间

来自分类Dev

如何使用SAS处理外部文件?

来自分类Dev

如何使用Java(外部安全模块)中的微策略SDK创建用户

来自分类Dev

如何使用rspec测试模块中的模块?

来自分类Dev

使用请求模块,如何处理请求响应中的“ set-cookie”?

来自分类Dev

如何使用自定义处理程序使Python日志记录消息出现在模块中

来自分类Dev

如何使用自定义处理程序使Python日志记录消息出现在模块中

来自分类Dev

如何使用自己的处理器模块在Spring-XD中创建水龙头

来自分类Dev

如何在for循环上使用时间模块以防止列表处理中的延迟

来自分类Dev

如何使Webpack外部可用

来自分类Dev

如何使Webpack外部可用

来自分类Dev

如何使Webpack外部可用

Related 相关文章

  1. 1

    如何包含来自外部URL的Webpack模块?

  2. 2

    如何在React + Webpack中安装和配置外部模块

  3. 3

    如何使用我的模块作为 webpack 项目中的外部库?

  4. 4

    使用WebPack + TypeScript定义导入的外部模块

  5. 5

    从Python中的外部模块退出(信号处理)

  6. 6

    如何使用onRequestPermissionsResult处理React Native Android模块中的权限?

  7. 7

    如何使用Webpack在另一个模块中要求预编译的模块?

  8. 8

    如何为模块子目录编写外部webpack

  9. 9

    解决Webpack中的外部子模块依赖性

  10. 10

    编译TypeScript时如何处理外部模块?

  11. 11

    如何使用 IIS 重写模块删除 url 中的锚点?

  12. 12

    找不到Webpack外部模块

  13. 13

    使用webpack处理具有外部依赖关系的AMD库

  14. 14

    如何在webpack中包含外部文件

  15. 15

    如何在 NodeJS 模块中处理资产

  16. 16

    如何使用多处理模块杀死进程?

  17. 17

    如何将蓝牙模块与多处理模块结合使用?

  18. 18

    如何处理外部进程中的空间

  19. 19

    如何使用SAS处理外部文件?

  20. 20

    如何使用Java(外部安全模块)中的微策略SDK创建用户

  21. 21

    如何使用rspec测试模块中的模块?

  22. 22

    使用请求模块,如何处理请求响应中的“ set-cookie”?

  23. 23

    如何使用自定义处理程序使Python日志记录消息出现在模块中

  24. 24

    如何使用自定义处理程序使Python日志记录消息出现在模块中

  25. 25

    如何使用自己的处理器模块在Spring-XD中创建水龙头

  26. 26

    如何在for循环上使用时间模块以防止列表处理中的延迟

  27. 27

    如何使Webpack外部可用

  28. 28

    如何使Webpack外部可用

  29. 29

    如何使Webpack外部可用

热门标签

归档