Skip to content

Ignore browser field when bundling in library mode #8910

@Sara2009

Description

@Sara2009

Describe the bug

use vite to build a lib for nodejs

The source code in axios is like below:

function getDefaultAdapter() {
  var adapter;
  if (typeof XMLHttpRequest !== 'undefined') {
    // For browsers use XHR adapter
    adapter = require('../adapters/xhr.js');
  } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {
    // For node use HTTP adapter
    adapter = require('../adapters/http');
  }
  return adapter;
}

After building. The result bundle is not correct. Http adapter is resolved as xhr.

function getDefaultAdapter() {
  var adapter;
  if (typeof XMLHttpRequest !== "undefined") {
    adapter = xhr;
  } else if (typeof process !== "undefined" && Object.prototype.toString.call(process) === "[object process]") {
    adapter = xhr;
  }
  return adapter;
}

Then i got the error: UnhandledRejection ReferenceError: XMLHttpRequest is not defined

Reproduction

https://github.com/Sara2009/vite-require

System Info

"vite": "^2.9.13",

Used Package Manager

yarn

Logs

No response

Validations

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions