Skip to content

Commit

Permalink
npm: use the dsfr-assets gem instead of Node
Browse files Browse the repository at this point in the history
Pros:

- it means we can enforce coherent CSS/HTML: relying on others to
provide the assets is problematic since they are both narrowly linked;
- it removes the need for Node in projects that solely depend on it to
install the @gouvfr/dsfr package;
- projects who are supporting a different version of the DSFR can
opt-in: if you don't reference the assets they won't be compiled, we
don't force them upon you – yet, because eventually it would be nice
to maintain that consistency.

Cons:

- your app's installed size is +1.45meg heavier;
- upgrading dsfr-view-components will sometimes mean you have to
update your DSFR version as well, which is perfectly logical.
  • Loading branch information
freesteph committed Jan 20, 2025
1 parent 35590e8 commit c1dc861
Show file tree
Hide file tree
Showing 11 changed files with 14 additions and 59 deletions.
3 changes: 2 additions & 1 deletion Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ PATH
remote: .
specs:
dsfr-view-components (2.0.1)
dsfr-assets (~> 1.13)
html-attributes-utils (~> 1)
pagy (~> 6)
view_component (~> 3)
Expand Down Expand Up @@ -111,6 +112,7 @@ GEM
diff-lcs (1.5.1)
docile (1.4.1)
drb (2.2.1)
dsfr-assets (1.13.0)
em-websocket (0.5.3)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0)
Expand Down Expand Up @@ -232,7 +234,6 @@ GEM
net-protocol (0.2.2)
timeout
net-smtp (0.5.0)
net-protocol
nio4r (2.7.4)
nokogiri (1.18.1-arm64-darwin)
racc (~> 1.4)
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ Pour utiliser cette gem dans votre application Rails, il faut ajouter cette lign
require "dsfr/components"
```

**NOTE:** depuis la version 2.1, la gem dépend de [`dsfr-assets`](https://github.com/betagouv/dsfr-assets) qui embarque les assets du DSFR pour vous. Pour laisser au temps aux équipes de vérifier cette intégration, l'inclusion des assets est optionnelle mais peut se faire en suivant [les instructions dans le README de dsfr-assets](https://github.com/betagouv/dsfr-assets?tab=readme-ov-file#installation).

## Composants disponibles

Cette gem a pour but de supporter tous les composants proposés par le Design Système de l'État hormis ceux concernant les formulaires. Ceux-ci seront fournis dans une gem indépendante dans le futur.
Expand Down Expand Up @@ -75,12 +77,11 @@ Utilisez le générateur pour créer un nouveau composant :
bin/rails g dsfr_component FancyButton --params title:String count:Integer
```


Lancer la dummy app pour itérer sur les composants :

```sh
cd spec/dummy
bundle install && npm install
bundle install
bundle exec rails server
```

Expand All @@ -90,7 +91,6 @@ Déployer une nouvelle version de la gem :
VERSION=1.3.2 make deploy_gem
```


## Licence

Le code source et la gem sont ouverts sous la licence [MIT](https://opensource.org/licenses/MIT).
1 change: 1 addition & 0 deletions dsfr-view-components.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ Gem::Specification.new do |spec|
spec.add_dependency "html-attributes-utils", "~> 1"
spec.add_dependency "pagy", "~> 6"
spec.add_dependency "view_component", "~> 3"
spec.add_dependency "dsfr-assets", "~> 1.13"

spec.add_development_dependency "deep_merge"
spec.add_development_dependency "guard"
Expand Down
2 changes: 0 additions & 2 deletions spec/dummy/Procfile.dev

This file was deleted.

1 change: 1 addition & 0 deletions spec/dummy/app/assets/stylesheets/application.css
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
2 changes: 0 additions & 2 deletions spec/dummy/app/assets/stylesheets/application.sass.scss

This file was deleted.

5 changes: 5 additions & 0 deletions spec/dummy/app/views/layouts/application.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@

<%# <meta name="theme-color" content="#000091"> %>
<%= stylesheet_link_tag :app, "data-turbo-track": "reload" %>
<%= stylesheet_link_tag "dsfr.min", "application-turbo-track": "reload" %>

<%= javascript_include_tag "dsfr.module.min.js", type: 'module' %>
<%= javascript_include_tag "dsfr.nomodule.min.js", nomodule: true %>

<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
</head>

Expand Down
Binary file removed spec/dummy/bun.lockb
Binary file not shown.
2 changes: 2 additions & 0 deletions spec/dummy/config/application.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
require "action_view/railtie"

Bundler.require(*Rails.groups)

require "dsfr/assets"
require "dsfr/components"

module Dummy
Expand Down
41 changes: 0 additions & 41 deletions spec/dummy/package-lock.json

This file was deleted.

10 changes: 0 additions & 10 deletions spec/dummy/package.json

This file was deleted.

0 comments on commit c1dc861

Please sign in to comment.