pnpm-rails 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 4503c0e7e0a30c91a556da42923948a7278cb7fa41eb55909e5b443143ec5406
4
+ data.tar.gz: 73287472e2738a0357af4faafe5834dbc4ac65fab8692ad0a4cc40d813c17cc1
5
+ SHA512:
6
+ metadata.gz: 78ed5813386b35892cedadb4f884858425414211091c6297698262ab8d8ed88ae309c91eee3e1491d3afee53e9387b7fe230c57ef190e25497efd8892b63a4d4
7
+ data.tar.gz: 518e1674f790b1488e2993dbe41d58df7054f93f1864ad66a7b7975d60fc4a1d1061f987f620f3d2f3fa11d8d6bcc3885d0c2c93ab20d8ffbda98ae5829f68bf
data/README.md ADDED
@@ -0,0 +1,37 @@
1
+ # PNPM Rails
2
+
3
+ For Rails app using pnpm as package manager.
4
+ Hook `pnpm install` and `pnpm run build` into `rails assets:precompile`.
5
+ This gem is like `jsbundling-rails` but for pnpm. And no installer like webpack, rollup, etc.
6
+
7
+ ## Installation
8
+
9
+ ```ruby
10
+ gem "pnpm-rails"
11
+ ```
12
+
13
+ ## Usage
14
+
15
+ When the deploy process `assets:precompile` gets called, `pnpm install` and `pnpm run build` will be called automatically.
16
+ It assumed you have `build` script for building assets in `package.json`.
17
+
18
+ ```json
19
+ {
20
+ "scripts": {
21
+ "build": "webpack ..."
22
+ }
23
+ }
24
+ ```
25
+
26
+ ### Environment variables
27
+
28
+ `SKIP_PNPM_INSTALL` - skip `pnpm install` when `assets:precompile` gets called.
29
+ `SKIP_JS_BUILD` - skip `pnpm run build` when `assets:precompile` gets called.
30
+
31
+ ## Contributing
32
+
33
+ Bug reports and pull requests are welcome on GitHub at https://github.com/yfxie/pnpm-rails.
34
+
35
+ ## License
36
+
37
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
@@ -0,0 +1,4 @@
1
+ module Pnpm
2
+ class Engine < ::Rails::Engine
3
+ end
4
+ end
@@ -0,0 +1,3 @@
1
+ module Pnpm
2
+ VERSION = "1.0.1"
3
+ end
data/lib/pnpm-rails.rb ADDED
@@ -0,0 +1,5 @@
1
+ module Pnpm
2
+ end
3
+
4
+ require "pnpm/version"
5
+ require "pnpm/engine"
@@ -0,0 +1,40 @@
1
+ namespace :pnpm do
2
+ desc "Install JavaScript dependencies using pnpm"
3
+ task :install do
4
+ unless system("pnpm install")
5
+ raise "pnpm-rails: Command install failed, ensure pnpm is installed"
6
+ end
7
+ end
8
+
9
+ desc "Build JavaScript bundle"
10
+ build_task = task :build do
11
+ unless system("pnpm run build")
12
+ raise "pnpm-rails: Command build failed, ensure `pnpm run build` runs without errors"
13
+ end
14
+ end
15
+
16
+ build_task.prereqs << :install unless ENV["SKIP_PNPM_INSTALL"]
17
+
18
+ desc "Remove JavaScript builds"
19
+ task :clobber do
20
+ rm_rf Dir["app/assets/builds/**/[^.]*.{js,js.map}"], verbose: false
21
+ end
22
+ end
23
+
24
+ unless ENV["SKIP_JS_BUILD"]
25
+ if Rake::Task.task_defined?("assets:precompile")
26
+ Rake::Task["assets:precompile"].enhance(["pnpm:build"])
27
+ end
28
+
29
+ if Rake::Task.task_defined?("test:prepare")
30
+ Rake::Task["test:prepare"].enhance(["pnpm:build"])
31
+ elsif Rake::Task.task_defined?("spec:prepare")
32
+ Rake::Task["spec:prepare"].enhance(["pnpm:build"])
33
+ elsif Rake::Task.task_defined?("db:test:prepare")
34
+ Rake::Task["db:test:prepare"].enhance(["pnpm:build"])
35
+ end
36
+ end
37
+
38
+ if Rake::Task.task_defined?("assets:clobber")
39
+ Rake::Task["assets:clobber"].enhance(["pnpm:clobber"])
40
+ end
metadata ADDED
@@ -0,0 +1,62 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pnpm-rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Yi Feng Xie
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2023-09-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: railties
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 6.0.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 6.0.0
27
+ description:
28
+ email:
29
+ - yfxie@me.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - README.md
35
+ - lib/pnpm-rails.rb
36
+ - lib/pnpm/engine.rb
37
+ - lib/pnpm/version.rb
38
+ - lib/tasks/pnpm.rake
39
+ homepage: https://github.com/yfxie/pnpm-rails
40
+ licenses:
41
+ - MIT
42
+ metadata: {}
43
+ post_install_message:
44
+ rdoc_options: []
45
+ require_paths:
46
+ - lib
47
+ required_ruby_version: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - ">="
50
+ - !ruby/object:Gem::Version
51
+ version: '0'
52
+ required_rubygems_version: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ requirements: []
58
+ rubygems_version: 3.3.7
59
+ signing_key:
60
+ specification_version: 4
61
+ summary: For Rails projects using pnpm as package manager.
62
+ test_files: []