Skip to content

[Feature]: Support for createRequire() #233

@chenjiahan

Description

@chenjiahan

What problem does this feature solve?

  • Input:
import { createRequire } from 'node:module';

const require = createRequire(import.meta.url);

require.resolve('stylus-loader');
  • Current output of Rslib 0.0.7:
// mjs
import * as __WEBPACK_EXTERNAL_MODULE_node_module__ from "node:module";
const src_require = (0, __WEBPACK_EXTERNAL_MODULE_node_module__.createRequire)(__rslib_import_meta_url__);
src_require.resolve('stylus-loader');

// cjs
var __webpack_exports__ = {};
const external_node_module_namespaceObject = require("node:module");
const src_require = (0, external_node_module_namespaceObject.createRequire)(__rslib_import_meta_url__);
src_require.resolve('stylus-loader');
var __webpack_export_target__ = exports;
for(var i in __webpack_exports__)__webpack_export_target__[i] = __webpack_exports__[i];
if (__webpack_exports__.__esModule) Object.defineProperty(__webpack_export_target__, '__esModule', {
    value: true
});
var __rslib_import_meta_url__ = /*#__PURE__*/ function() {
    return 'undefined' == typeof document ? new (require('url'.replace('', ''))).URL('file:' + __filename).href : document.currentScript && document.currentScript.src || new URL('main.js', document.baseURI).href;
}();

What does the proposed API look like?

The expected output should be similar to tsup:

// mjs
import { createRequire } from "node:module";
var require2 = createRequire(import.meta.url);
require2.resolve("stylus-loader");

// cjs
var getImportMetaUrl = () => typeof document === "undefined" ? new URL(`file:${__filename}`).href : document.currentScript && document.currentScript.src || new URL("main.js", document.baseURI).href;
var importMetaUrl = /* @__PURE__ */ getImportMetaUrl();
var import_node_module = require("module");
var require2 = (0, import_node_module.createRequire)(importMetaUrl);
require2.resolve("stylus-loader");

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions