小编Dmi*_*lin的帖子

使用库组件/片段排除Webpack外部

Webpack对于我们编写同构Javascript非常有用,并且npm在捆绑时交换浏览器全局变量的包.

所以,如果我想node-fetch npm在Node.js 上使用该包但在捆绑时将其排除,并且只使用本机浏览器fetch全局,我可以在我的中提及webpack.config.js:

{
  externals: {
    'node-fetch': 'fetch',
    'urlutils': 'URL',
    'webcrypto': 'crypto', // etc
  }
}
Run Code Online (Sandbox Code Playgroud)

然后我的CommonJS要求const fetch = require('node-fetch')将被转换为const fetch = window.fetch(或无论它做什么).

到现在为止还挺好.这是我的问题:当需要整个模块时,这很容易,但是当我需要一个导出模块的子模块/单个属性时呢?

例如,假设我想使用WhatWG URL标准,同构.我可以使用整个URL类的urlutils npm模块module.exports,所以我的要求如下:

const URL = require('urlutils')
Run Code Online (Sandbox Code Playgroud)

然后我可以urlutils在我的externals部分列出,没有概率.但是,当我想要使用更新的(并且更受支持的)npm软件包时whatwg-url,我不知道如何对其进行Webpack,因为我的要求如下:

const { URL } = require('whatwg-url')
// or, if you don't like destructuring assignment
const URL = require('whatwg-url').URL
Run Code Online (Sandbox Code Playgroud)

如何告诉Webpack替换require('whatwg-url').URL …

javascript node.js webpack

8
推荐指数
1
解决办法
522
查看次数

标签 统计

javascript ×1

node.js ×1

webpack ×1