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;
},
});
Even though Parcel has native support for Node packages replacement, we still want to provide support using this module.
global,processandBufferreplacements 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