Skip to content

Add instructions for Parcel #15

Description

@niksy

Even though Parcel has native support for Node packages replacement, we still want to provide support using this module.

global, process and Buffer replacements are handled natively by Parcel inside Rust codebase so we won’t touch it and let Parcel resolve everything by itself.


In your project:

package.json

{
  "devDependencies": {
    "parcel-resolver-node-stdlib-browser": "file:node_modules/node-stdlib-browser/helpers/parcel/parcel-resolver-node-stdlib-browser"
  }
}

.parcelrc

{
  "extends": "@parcel/config-default",
  "resolvers": ["parcel-resolver-node-stdlib-browser", "..."]
}

In this module, for helpers/parcel/parcel-resolver-node-stdlib-browser:

package.json

{
  "name": "parcel-resolver-node-stdlib-browser",
  "main": "index.js",
  "engines": { "parcel": "^2.0.0" }
}

index.js

const { Resolver } = require('@parcel/plugin');
const { promisify } = require('util');
const stdLibBrowser = require('node-stdlib-browser');
const browserResolve = require('browser-resolve');

const pBrowserResolve = promisify(browserResolve);

module.exports = new Resolver({
  async resolve({ specifier }) {
    if (typeof stdLibBrowser[specifier] !== 'undefined') {
      const filePath = await pBrowserResolve(stdLibBrowser[specifier], {});
      return {
        filePath: filePath,
      };
    }
    return null;
  },
});

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentation

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions