sewing_kit 0.95.4 → 0.96.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: 8847792f430ca9ff0b5d9e2da35b701392636af48ac0435f9e82f816e4d9b385
4
- data.tar.gz: cb61d56de21e9ae5e4c937313d2acfc213e10790cb8139c5b3e432ec76759f25
3
+ metadata.gz: f4c9a4d05fadcda6b90c207bb14c7652c1e16725be38391f53ba66b2af982550
4
+ data.tar.gz: 7848dba3af77dcf21232061744a33afe61a7e6ed5a67a46ffdaf5c0ce04c7fb1
5
5
  SHA512:
6
- metadata.gz: f956eb534703a3b6f1bc57013be323209fec34ff1d34377757067cf42b6364ed399b88e37fa8db81401cc63909c80efebf68077e08cfdfdd7c1c93745d648f3a
7
- data.tar.gz: 7dd03739b8f4677e9e5e55834af4481027a4b23a85413bfbdb9d46f7122455956e04a95290ba71378aa056e253c5ee29f19b8f1ed11c178b9c2c0c49e33db6b4
6
+ metadata.gz: 820de0241ba40a9735a6aca803b2c74adda0ae2575541e5975a0ea28adb3c9c660564e50f184cb39fbb4e51828f29e00e8815acdd6a863a89b5c29a79ccaff34
7
+ data.tar.gz: 247dda76a13df81da377d05810508abb6d722e95809d462c4679c734173a3d1b86760ac4f75aab2bb36b78e677da776dd57b6d2af822faaa6c112e19642b64fd
data/README.md CHANGED
@@ -4,12 +4,6 @@ Zero configuration, high performance front end development at organization scale
4
4
 
5
5
  `sewing_kit` facilitates legacy Rails integration using ERB tags. For a more complete modern stack with performance-as-a-feature, consider [quilt_rails](https://github.com/Shopify/quilt/tree/master/gems/quilt_rails). For details of the `sewing-kit` node package's configuration and usage, see the [sewing-kit README](/README.md).
6
6
 
7
- ## Use `quilt_rails` for React Server-Side-Rendering
8
-
9
- For React applications with a Rails backend, the best-practice for user-experience is server-side-rendering (SSR). **For building out React applications using SSR and Sewing-Kit, see [`quilt_rails`](https://github.com/Shopify/quilt/tree/master/gems/quilt_rails)**.
10
-
11
- If you are building a conventional Rails application using `.erb` files and just want modern JavaScript / TypeScript compilation, continue reading this document.
12
-
13
7
  ## Quick Start
14
8
 
15
9
  Create a Rails project using `dev init` then:
@@ -54,6 +48,28 @@ The `main` bundle is imported into `erb` files using Rails helpers:
54
48
  └─- application.html.erb (must link to JS / CSS using sewing_kit_script_tag / sewing_kit_link_tag
55
49
  ```
56
50
 
51
+ ## Configuring development mode
52
+
53
+ `SewingKit.configure` provides a `development_options` attribute that adjusts the behaviour of sewing-kit's development mode. See [the `dev` command's documentation](/docs/commands/dev.md) for a full list of options.
54
+
55
+ ### Usage
56
+
57
+ ```rb
58
+ # config/initializers/sewing_kit.rb
59
+ SewingKit.configure do |config|
60
+ # Disable hot module reloading
61
+ config.development_options[:hot] = false
62
+
63
+ # Launch development mode with extra memory (helpful if source maps are
64
+ # occupying more than Node's default 1.4GB heap allocation)
65
+ config.development_options[:heap] = 4000
66
+
67
+ # Disable source maps (very large apps may need to builds sans source maps to
68
+ # reduce development mode's memory usage)
69
+ config.development_options[:source_maps] = false
70
+ end
71
+ ```
72
+
57
73
  ## Testing the front end
58
74
 
59
75
  For fast tests with consistent results, test front-end components using Jest instead of Rails integration tests.
@@ -79,7 +95,7 @@ The default behaviour is equivalent to this configuration:
79
95
  ```rb
80
96
  # config/initializers/sewing_kit.rb
81
97
  SewingKit.configure do |config|
82
- config.test_manifest_mode = :return_no_asets
98
+ config.test_manifest_mode = :return_no_assets
83
99
  end
84
100
  ```
85
101
 
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
  module SewingKit
3
3
  class Configuration
4
- attr_accessor :build_options, :dev_server_sewing_kit_bin, :manifest_name,
4
+ attr_accessor :development_options, :build_options, :dev_server_sewing_kit_bin, :manifest_name,
5
5
  :manifest_path
6
6
  attr_reader :test_manifest_mode, :log_level
7
7
 
@@ -24,6 +24,7 @@ module SewingKit
24
24
 
25
25
  def initialize
26
26
  @build_options = nil
27
+ @development_options = {}
27
28
  @manifest_name = 'sewing-kit-manifest.json'
28
29
  @manifest_path = nil
29
30
  @dev_server_sewing_kit_bin = 'node_modules/.bin/sewing-kit'
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module SewingKit
3
- VERSION = "0.95.4"
3
+ VERSION = "0.96.0"
4
4
  end
@@ -54,7 +54,7 @@ module SewingKit
54
54
  'dev',
55
55
  '--logLevel',
56
56
  log_level,
57
- ]
57
+ ].concat(options)
58
58
 
59
59
  if debug_mode?
60
60
  command_list.push(['--debug'])
@@ -64,7 +64,12 @@ module SewingKit
64
64
  end
65
65
 
66
66
  def sewing_kit_bin
67
- bin = SewingKit.configuration.dev_server_sewing_kit_bin
67
+ heap_size = SewingKit.configuration.development_options[:heap]
68
+ heap_config = if heap_size
69
+ "node --max-old-space-size=#{heap_size} "
70
+ end
71
+
72
+ bin = "#{heap_config}#{SewingKit.configuration.dev_server_sewing_kit_bin}"
68
73
  raise NodeSewingKitNotInstalled unless File.exist?(bin)
69
74
  bin
70
75
  end
@@ -77,6 +82,15 @@ module SewingKit
77
82
  end
78
83
  end
79
84
 
85
+ def options
86
+ development_options = SewingKit.configuration.development_options
87
+ return [] unless development_options
88
+
89
+ development_options
90
+ .reject { |key| key == :heap }
91
+ .map { |key, value| ["--#{key}", value] }.flatten
92
+ end
93
+
80
94
  def log_level_from_rails
81
95
  case Rails.logger.level
82
96
  when 0
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sewing_kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.95.4
4
+ version: 0.96.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Sauve
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-10 00:00:00.000000000 Z
11
+ date: 2019-12-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties