-
Notifications
You must be signed in to change notification settings - Fork 613
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feature: alias modules in the worker #6167
Conversation
Sometimes, users want to replace modules with other modules. This commonly happens inside a third party dependency itself. As an example, a user might have imported `node-fetch`, which will probably never work in workerd. You can use the alias config to replace any of these imports with a module of your choice. Let's say you make a `fetch-nolyfill.js` ```ts export default fetch; // all this does is export the standard fetch function` ``` You can then configure `wrangler.toml` like so: ```toml [alias] "node-fetch": "./fetch-nolyfill" ``` So any calls to `import fetch from 'node-fetch';` will simply use our nolyfilled version. You can also pass aliases in the cli (for both `dev` and `deploy`). Like: ```bash npx wrangler dev --alias node-fetch:./fetch-nolyfill ```
🦋 Changeset detectedLatest commit: 7799ced The changes in this PR will be included in the next version bump. This PR includes changesets to release 2 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
A wrangler prerelease is available for testing. You can install this latest build in your project with: npm install --save-dev https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9713989200/npm-package-wrangler-6167 You can reference the automatically updated head of this PR with: npm install --save-dev https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/prs/6167/npm-package-wrangler-6167 Or you can use npx https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9713989200/npm-package-wrangler-6167 dev path/to/script.js Additional artifacts:npx https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9713989200/npm-package-create-cloudflare-6167 --no-auto-update npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9713989200/npm-package-cloudflare-kv-asset-handler-6167 npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9713989200/npm-package-miniflare-6167 npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9713989200/npm-package-cloudflare-pages-shared-6167 npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9713989200/npm-package-cloudflare-vitest-pool-workers-6167 Note that these links will no longer work once the GitHub Actions artifact expires.
Please ensure constraints are pinned, and |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎉
Sometimes, users want to replace modules with other modules. This commonly happens inside a third party dependency itself. As an example, a user might have imported
node-fetch
, which will probably never work in workerd. You can use the alias config to replace any of these imports with a module of your choice.Let's say you make a
fetch-nolyfill.js
You can then configure
wrangler.toml
like so:So any calls to
import fetch from 'node-fetch';
will simply use our nolyfilled version.You can also pass aliases in the cli (for both
dev
anddeploy
). Like:Author has addressed the following