Loading...
Loading...
Build high-performance web apps using modern interop and browser APIs.
npx skill4agent add dart-lang/skills dart-web-developmentdart:js_interoppackage:webwebdev@JSwebdev servewebdev buildbuild_runner testpubspec.yamlbuild_runnerbuild_web_compilerspackage:webdependencies:
web: ^0.5.0 # Use latest compatible version
dev_dependencies:
build_runner: ^2.4.0
build_web_compilers: ^4.0.0
build_test: ^3.0.0 # If testing is requireddart pub getpubspec.yamldart:js_interopdart:htmlimport 'dart:js_interop';
import 'package:web/web.dart' as web;
// Bind to a global JavaScript function
('console.log')
external void logToConsole(JSAny? obj);
// Bind to a JavaScript object/class using Extension Types
('MyJSClass')
extension type MyDartWrapper._(JSObject _) implements JSObject {
external MyDartWrapper(JSString name);
external JSString get name;
external set name(JSString value);
external void doSomething();
}
void main() {
// Example usage interacting with the DOM via package:web
final div = web.document.createElement('div') as web.HTMLDivElement;
div.text = 'Hello from Dart!';
web.document.body?.append(div);
// Example usage of custom JS interop
final myObj = MyDartWrapper('Test'.toJS);
myObj.doSomething();
}webdev# Standard serve (defaults to localhost:8080)
webdev serve
# Serve with Dart DevTools enabled
webdev serve --debug
# Serve on a custom port
webdev serve web:8083# Build the 'web' directory into the 'build' directory
webdev build --output web:buildbuild_web_compilersdev_dependencies# Run tests on the Chrome platform
dart run build_runner test -- -p chromedart:htmldart:jsdart:js_utilpackage:webdart:js_interopdart:mirrorsextension type@JS()'string'.toJSdart-migration-versioningdart-compilation-deployment