pnpm-rails 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README.md +37 -0
- data/lib/pnpm/engine.rb +4 -0
- data/lib/pnpm/version.rb +3 -0
- data/lib/pnpm-rails.rb +5 -0
- data/lib/tasks/pnpm.rake +40 -0
- metadata +62 -0
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).
|
data/lib/pnpm/engine.rb
ADDED
data/lib/pnpm/version.rb
ADDED
data/lib/pnpm-rails.rb
ADDED
data/lib/tasks/pnpm.rake
ADDED
@@ -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: []
|