【问题标题】:Is there a way to automatically import 'cssuseragent' (or any non-exported) package in webpack?有没有办法在 webpack 中自动导入“cssuseragent”(或任何未导出的)包?
【发布时间】:2019-10-02 21:14:21
【问题描述】:

当前的 cssuseragent 包 (2.1.31) 不导出任何内容。只有一个名为 cssua 的变量。我想用 webpack 将它导入/要求到我的项目中。

我尝试在 cssua 变量之前添加 export 关键字并且它起作用了。但这不是一个好的解决方案。如果将来有其他人升级包,她/他不会知道他/他必须这样做。

在 CLI 中:

npm i cssuseragent

然后我导出cssua变量:

//'export' was not exist, I added it
export var cssua = (
//some code here
)(/*some arguments here*/)

然后我可以导入:

import { cssua } from 'cssuseragent';

有没有办法通过加载器或插件对 webpack 说“如果您在 import/require 中解析到这个文件,请将其作为 'custom-name' 及其所有内容获取”?因为更改第 3 方模块的源代码不是一个好方法。也可能不是每次都这么简单,模块可能很大。我想要一种通用的方法来做到这一点,也许就像只添加模块的路径。

【问题讨论】:

  • 你可以在 Github 上为此创建一个拉取请求。
  • @madflow 当然我可以为此创建一个拉取请求,但我不能为每个不使用导出的包创建拉取请求。我们不能等到请求得到确认,我的请求可能未得到确认,或者库可能很复杂且无法编辑。我的意思是我的问题不仅仅与 cssua 有关,它与每个未导出的包有关。
  • 是的:/你不能只使用import 'cssuseragent';并使用全局导出变量(如果存在的话:/)。

标签: javascript npm webpack


【解决方案1】:

我不知道有这样的 webpack 插件,但你可以

// customExport.js
import { cssua } from 'cssuseragent';
export default { cssua };

在另一个文件中

// other_file,js
import customExport from "customExport.js";

【讨论】:

    猜你喜欢
    • 2021-12-10
    • 1970-01-01
    • 2010-12-04
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多