simpacker 0.1.0 → 0.2.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4ac94b7ca7ff8dd46cde4e074b7f273037999f0b533703f89adc067b7786897b
4
- data.tar.gz: 93173bafc209891df117fa2a8758f1d52e6be59c5d3c1e3d6a5b3813bc83b166
3
+ metadata.gz: 6e51ab5eb4741f00ae413fcc931027a066dc596d52e45b4e200c196feea7e0ee
4
+ data.tar.gz: 110c2a023025c0891be42412f656f3dde456e5b1572ad40a96fed1c319d8e1b5
5
5
  SHA512:
6
- metadata.gz: 2674d3dfeaa7e01f431d387acd370e0830b0ed1d443f60042c7884d698f98946d3a0b5b6f98c2a8b868628f9e6d176d0741b867e1b931c8ee07118a225f84efc
7
- data.tar.gz: 7df76f3b8759c38f350ab1371c53f1d521f50de3598c85613191c2a714454088e7dd7b88bc3abdb89ee3c1bb914f78779ac32c56bd97a51d9658a0e25f564ce9
6
+ metadata.gz: a3ac94fb02775f05cadf37ae24cbd78de58157f8594991bd9cf32b2a609881c28893ca5701feb82c178323323c7c24d5f32b14a095e88e35b1f04dfe90e804b8
7
+ data.tar.gz: c62c4db865dae9f3a0ccf87e70d755f6b08148e797b97a1e16dba2c12874165f9738ec036056ebc14ff6294ca68d35c16e20ed7743fd3944d314a7eed4d65a1b
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Simpacker
2
2
 
3
- Yet another [webpacker](https://github.com/rails/webpacker).
3
+ Simpacker provides the feature to integrate modern JavaScript build system with Rails, like a [webpacker](https://github.com/rails/webpacker).
4
4
 
5
5
  ## Installation
6
6
 
@@ -22,18 +22,29 @@ Run the following to install Simpacker:
22
22
  $ rails simpacker:install
23
23
  ```
24
24
 
25
- Run the folloing command to build JavaScript and watch files.
25
+ Add `javascript_pack_tag` in view.
26
26
 
27
27
  ```
28
- $ npx webpack --watch
28
+ <%= javascript_pack_tag 'application' %>
29
29
  ```
30
30
 
31
- ## Usage
31
+ Run the folloing command to build JavaScript.
32
32
 
33
- You can use `javascript_pack_tag` in view.
33
+ ```
34
+ $ npx wabpack --watch
35
+ ```
34
36
 
35
- ```erb
36
- <%= javascript_pack_tag 'application' %>
37
+ ## Integrations
38
+
39
+ See [examples](https://github.com/hokaccha/simpacker/tree/master/example).
40
+
41
+ ## Deployment
42
+
43
+ Simpacker does not provide feature for deployment. Just run the following command at deployment.
44
+
45
+ ```
46
+ $ npm install
47
+ $ NODE_ENV=production npx webpack
37
48
  ```
38
49
 
39
50
  ## Contributing
data/Rakefile CHANGED
@@ -1,2 +1,10 @@
1
1
  require "bundler/gem_tasks"
2
- task :default => :spec
2
+ require "rake/testtask"
3
+
4
+ Rake::TestTask.new do |t|
5
+ t.libs << "test"
6
+ t.test_files = FileList["test/**/*_test.rb"]
7
+ t.verbose = true
8
+ end
9
+
10
+ task default: :test
@@ -0,0 +1,3 @@
1
+ import { hello } from "./greeter";
2
+
3
+ console.log(hello("Rails"));
@@ -0,0 +1,3 @@
1
+ export function hello(name: string): string {
2
+ return `Hello ${name}!`;
3
+ }
@@ -1,14 +1,18 @@
1
1
  {
2
2
  "compilerOptions": {
3
3
  "target": "es5",
4
- "lib": ["dom", "es2015"],
4
+ "lib": ["es2019", "dom", "dom.iterable"],
5
5
  "module": "es2015",
6
6
  "moduleResolution": "node",
7
- "sourceMap": true,
8
7
  "esModuleInterop": true,
9
- "baseUrl": ".",
10
- "paths": {
11
- "~/*": ["./app/javascript/src"]
12
- }
8
+ "downlevelIteration": true,
9
+ "sourceMap": true,
10
+ "removeComments": false,
11
+ "noImplicitAny": false,
12
+ "strictNullChecks": true,
13
+ "strictFunctionTypes": true,
14
+ "strictBindCallApply": true,
15
+ "strictPropertyInitialization": true,
16
+ "noImplicitThis": true
13
17
  }
14
18
  }
@@ -8,7 +8,7 @@ module.exports = {
8
8
  mode: isProd ? "production" : "development",
9
9
  devtool: "source-map",
10
10
  entry: {
11
- application: path.resolve(__dirname, "app/javascript/packs/application.ts")
11
+ application: path.resolve(__dirname, "app/javascript/application.ts")
12
12
  },
13
13
  output: {
14
14
  path: path.resolve(__dirname, "public/packs"),
@@ -17,10 +17,7 @@ module.exports = {
17
17
  chunkFilename: "[id]-[chunkhash].js"
18
18
  },
19
19
  resolve: {
20
- extensions: [".tsx", ".ts", ".js"],
21
- alias: {
22
- "~": path.resolve(__dirname, "app/javascript/src")
23
- }
20
+ extensions: [".js", ".ts"]
24
21
  },
25
22
  module: {
26
23
  rules: [
@@ -14,6 +14,12 @@ else
14
14
  directory "#{__dir__}/javascript", 'app/javascript'
15
15
  end
16
16
 
17
+ if File.exists?(".gitignore")
18
+ append_to_file ".gitignore" do
19
+ "\n/public/packs\n"
20
+ end
21
+ end
22
+
17
23
  dep_packages = %w(
18
24
  webpack
19
25
  webpack-cli
data/lib/simpacker.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require "simpacker/configuration"
2
2
  require "simpacker/manifest"
3
3
  require "simpacker/helper"
4
- require "simpacker/railtie" if defined?(Rails)
4
+ require "simpacker/railtie"
5
5
 
6
6
  module Simpacker
7
7
  def self.config
@@ -2,14 +2,14 @@ module Simpacker
2
2
  module Helper
3
3
  def javascript_pack_tag(*names, **options)
4
4
  sources = names.map do |name|
5
- Simpacker.manifest.lookup!("#{name}#{compute_asset_extname(name, type: :javascript)}")
5
+ Simpacker.manifest.lookup!("#{name}#{compute_asset_extname(name.to_s, type: :javascript)}")
6
6
  end
7
7
  javascript_include_tag(*sources, **options)
8
8
  end
9
9
 
10
10
  def stylesheet_pack_tag(*names, **options)
11
11
  sources = names.map do |name|
12
- Simpacker.manifest.lookup!("#{name}#{compute_asset_extname(name, type: :stylesheet)}")
12
+ Simpacker.manifest.lookup!("#{name}#{compute_asset_extname(name.to_s, type: :stylesheet)}")
13
13
  end
14
14
  stylesheet_link_tag(*sources, **options)
15
15
  end
@@ -1,3 +1,3 @@
1
1
  module Simpacker
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
data/simpacker.gemspec CHANGED
@@ -13,7 +13,7 @@ Gem::Specification.new do |spec|
13
13
  spec.homepage = "https://github.com/hokaccha/simpacker"
14
14
  spec.license = 'MIT'
15
15
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
16
- f.match(%r{^(test|spec|features|examples)/})
16
+ f.match(%r{^(test|example)/})
17
17
  end
18
18
  spec.bindir = "exe"
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
@@ -23,4 +23,6 @@ Gem::Specification.new do |spec|
23
23
 
24
24
  spec.add_development_dependency "bundler", "~> 1.16"
25
25
  spec.add_development_dependency "rake", "~> 10.0"
26
+ spec.add_development_dependency "rails", "~> 5.2"
27
+ spec.add_development_dependency "minitest", "~> 5.1"
26
28
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simpacker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kazuhito Hokamura
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-06-19 00:00:00.000000000 Z
11
+ date: 2019-06-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -52,6 +52,34 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '10.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '5.2'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '5.2'
69
+ - !ruby/object:Gem::Dependency
70
+ name: minitest
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '5.1'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '5.1'
55
83
  description: Integrate modern JavaScript build system with Rails.
56
84
  email:
57
85
  - k.hokamura@gmail.com
@@ -66,8 +94,8 @@ files:
66
94
  - bin/console
67
95
  - bin/setup
68
96
  - lib/install/config/simpacker.yml
69
- - lib/install/javascript/packs/application.ts
70
- - lib/install/javascript/src/greeter.ts
97
+ - lib/install/javascript/application.ts
98
+ - lib/install/javascript/greeter.ts
71
99
  - lib/install/root/package.json
72
100
  - lib/install/root/tsconfig.json
73
101
  - lib/install/root/webpack.config.js
@@ -1,3 +0,0 @@
1
- import { hello } from "~/greeter";
2
-
3
- hello("Rails");
@@ -1,3 +0,0 @@
1
- export function hello(name: string): void {
2
- console.log(`Hello ${name}!`);
3
- }