Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
18 changes: 10 additions & 8 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,23 +13,25 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive

# --- Force install Flutter 3.29 manually ---
- name: Install Flutter 3.29
run: |
git clone https://github.com/flutter/flutter.git --depth 1 --branch 3.29.0 $HOME/flutter
echo "$HOME/flutter/bin" >> $GITHUB_PATH
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
channel: 'stable'
cache: true

# Verify correct version (CRITICAL)
# Verify correct version
- name: Verify Flutter & Dart
run: |
which flutter
flutter --version
dart --version

# Workspace pub get
- name: Install dependencies
run: flutter pub get
run: dart pub get

- name: Verify formatting
run: dart format --output=none --set-exit-if-changed .
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,6 @@ pubspec_overrides.yaml

# βœ… NEW: Ignore build info files
**/.build_info.json

# Marketing and private drafts
marketing_drafts/
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "examples/flutterjs_website"]
path = examples/flutterjs_website
url = https://github.com/flutterjsdev/flutterjs_website.git
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ Enhancement suggestions are tracked as [GitHub issues](https://github.com/flutte

## πŸ“œ License

By contributing, you agree that your contributions will be licensed under its MIT License.
By contributing, you agree that your contributions will be licensed under its BSD 3-Clause License.

## ❀️ Code of Conduct

Expand Down
29 changes: 25 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,28 +86,49 @@ FlutterJS compiles your Flutter/Dart code to **semantic HTML + CSS + JavaScript*

## Installation

### Option 1: npm (Recommended)
### System Requirements

To develop with or use FlutterJS, you need:

- **Dart SDK**: `^3.10.0` or higher (Stable).
- **Node.js**: Required for the JavaScript engine and CLI tools.
- **NPM**: Package manager for JS dependencies.
- **Git**: For managing the monorepo and submodules.
- **Flutter SDK**: (Optional but recommended) For resolving SDK dependencies.

### Option 1: npm (Recommended for users)

```bash
npm install -g flutterjs
```

### Option 2: From Source (Development)
### Option 2: From Source (For contributors)

```bash
git clone https://github.com/flutterjsdev/flutterjs.git
git clone --recursive https://github.com/flutterjsdev/flutterjs.git
cd flutterjs
dart pub global activate --source path .
dart pub get
dart run tool/init.dart
```

---

## Current Status & Progress

βœ… **CI/CD Stabilized**: Full automation with GitHub Actions, supporting recursive submodules and workspace resolution.
βœ… **Ecosystem Launch**: First official package [`flutterjs_seo`](https://pub.dev/packages/flutterjs_seo) is now live on pub.dev.
βœ… **Modern Dart Support**: Fully compatible with Dart 3.10+ features including dot shorthand and records.
βœ… **Monorepo Readiness**: Standardized workspace structure across all 20+ packages.

---

## Quick Start

### 1. Create a New Project

```bash
flutterjs init my-app
flutter create my-app
cd my-app
```

Expand Down
37 changes: 28 additions & 9 deletions analysis_options.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ analyzer:
- "**/build/**"
- "**/*.g.dart"
- "**/*.freezed.dart"
- "**/test/**" # Exclude all test directories
- "**/node_modules/**" # Exclude node_modules
- "packages/**/dist/**" # Exclude flutterjs_material dist
- "examples/**/build/**" # Exclude example build folders
- "**/*.js" # Exclude all JavaScript files
- "**/*.fjs" # Exclude ES modules
- "**/test/**"
- "**/node_modules/**"
- "packages/**/dist/**"
- "examples/**/build/**"
- "**/*.js"
- "**/*.fjs"

# Performance optimizations
language:
Expand All @@ -22,9 +22,29 @@ analyzer:

# Reduce analysis scope
errors:
# Downgrade some checks to improve speed
todo: ignore
deprecated_member_use: ignore
use_super_parameters: ignore
prefer_final_fields: ignore
avoid_print: ignore
unnecessary_brace_in_string_interps: ignore
use_key_in_widget_constructors: ignore
file_names: ignore
non_constant_identifier_names: ignore
unintended_html_in_doc_comment: ignore
unused_element: ignore
unnecessary_import: ignore
implementation_imports: ignore
unnecessary_library_name: ignore
dangling_library_doc_comments: ignore
must_be_immutable: ignore
unused_catch_stack: ignore
dead_code: ignore
dead_null_aware_expression: ignore
unrelated_type_equality_checks: ignore
collection_methods_unrelated_type: ignore
depend_on_referenced_packages: ignore
annotate_overrides: ignore

# Enable strong mode for better performance
strong-mode:
Expand All @@ -33,5 +53,4 @@ analyzer:

linter:
rules:
# Disable heavy lint rules if needed
# - avoid_print: false
- avoid_print: false
22 changes: 12 additions & 10 deletions bin/flutterjs.dart
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
// Copyright 2025 The FlutterJS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'dart:io';
import 'package:args/command_runner.dart';
import 'package:flutterjs_tools/command.dart';

/// ============================================================================
/// Flutter.js CLI Entry Point
/// FlutterJS CLI Entry Point
/// ============================================================================
///
/// This file defines the main executable for the **Flutter.js** command-line
/// This file defines the main executable for the **FlutterJS** command-line
/// tool. It initializes argument parsing, handles global flags (`-v`, `-h`,
/// `doctor`, etc.), configures logging verbosity, and delegates execution to
/// `FlutterJSCommandRunner`.
Expand Down Expand Up @@ -72,13 +76,13 @@ import 'package:flutterjs_tools/command.dart';
///
/// # Constants
///
/// `version` / `kVersion` β†’ Current Flutter.js CLI version
/// `version` / `kVersion` β†’ Current FlutterJS CLI version
/// `appName` / `kAppName` β†’ Display name used by the CLI and commands
///
///
/// # Summary
///
/// This file contains the complete startup logic for the Flutter.js CLI,
/// This file contains the complete startup logic for the FlutterJS CLI,
/// including:
/// βœ” Flag normalization
/// βœ” Help/doctor routing
Expand All @@ -91,15 +95,13 @@ import 'package:flutterjs_tools/command.dart';
/// extend.
///

const String version = '2.0.0';
const String appName = 'Flutter.js';
const String version = '1.0.0';
const String appName = 'FlutterJS';

const String kVersion = '2.0.0';
const String kAppName = 'Flutter.js';
const String kVersion = '1.0.0';
const String kAppName = 'FlutterJS';

Future<void> main(List<String> args) async {
print('--- [SANITY CHECK] FLUTTERJS CLI STARTING ---');
print('--- [SANITY CHECK] ARGS: $args ---');
// Parse verbose flags early
final bool veryVerbose = args.contains('-vv');
final bool verbose =
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loading
Loading