Comments (3)
Hi @micah-yeager, thanks for the heads up on the broken link! 👍
I just updated the link and added more information on the dynamic import wrapper.
Let me know what your think!
⭐️ Use ES2015 Modules In Your Scripts
Chrome extensions don't support modules in background and content scripts. We've developed a module loader specifically for Chrome extension scripts, so you can take advantage of Rollup's great code splitting features.
⭐️ How does the dynamic import wrapper work?
TLDR; RPCE parses the manifest and replaces any script path with an IIFE wrapper that loads the script using a dynamic import statement.
See Why do we need to use dynamic import in scripts? for the reasons we need dynamic imports.
Content scripts are pretty straight forward, and the wrapper they use is just an IIFE that loads the script and logs any import errors.
Background pages need a special wrapper because wake events (onInstalled, onMessage, etc...) fire before the import completes. We make sure we don’t miss any events by capturing all events that occur before the import promise resolves and then re-dispatch them after the import completes.
from chrome-extension-tools.
That makes a lot more sense. So am I correct in thinking that it doesn't need anything special to work out of the box, just use normal import
statements in the background script?
from chrome-extension-tools.
@micah-yeager That's right! (sorry for the long delay)
from chrome-extension-tools.
Related Issues (20)
- chrome.storage.local is undefined in content script
- `vite-plugin` breaks Vite dev server when `build.rollupOptions.input`s are present HOT 1
- Upgrade monorepo pnpm version to 8.x
- HRM and service script loader causes modules to be loaded twice with vite HOT 2
- Сan’t build a project with vite version newer than 5.0.11 HOT 10
- unable to run the dev script command HOT 3
- @crxjs/vite-plugin will break the build if build.rollupOptions.inputs added HOT 1
- Example won't work on firefox HOT 2
- [crx:manifest-post] Content script fileName is undefined: "src/content.ts" HOT 3
- Created manifest.json in build is not similar to what was passed using defineManifest in dev mode for Firefox HOT 1
- Build fails when development environment works. HOT 6
- Extensions do not work with Orion browser for iOS HOT 1
- Add support for Edge and Firefox HOT 2
- icons of different sizes are automatically generated during the compilation process HOT 1
- Notification in background script unable to load image in assets HOT 5
- HMR not working HOT 6
- npm run build generated an unnecessary .vite folder HOT 1
- Build fails when using a dynamic css import HOT 1
- Can not HMR an web-accessible-resources HOT 1
- Content Script HMR does not work with CSS Modules
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from chrome-extension-tools.