shakapacker 6.0.0.rc.13 → 6.0.0.rc.14
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 +4 -4
- data/CHANGELOG.md +13 -9
- data/Gemfile.lock +1 -1
- data/README.md +14 -2
- data/docs/v6_upgrade.md +5 -5
- data/lib/install/template.rb +0 -9
- data/lib/webpacker/helper.rb +14 -0
- data/lib/webpacker/version.rb +1 -1
- data/package/environments/base.js +2 -5
- data/package.json +1 -2
- data/test/helper_test.rb +27 -0
- data/yarn.lock +0 -12
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 52b536f1a629b24f309e3b8fa5d12b4f00f3ab8d900072aef7a87310de40dbf2
|
4
|
+
data.tar.gz: aabac3cce21b2ebffd5cb89d250dcbd5adca8599d96dfe2ad6668bd05a81b5ad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7ad0f3e841893c69bc92cb543ed5a96305904b8aa8cc7799c7380bed6979577b60b866ef9d197252d1bbd13ae98e11eae2f8e7e9a8eb22be7a68321389f1826d
|
7
|
+
data.tar.gz: 86396cb0725037f0153731ed203d8c3840116e8dd40fd1a1eb8eceace8f20e4f0fab7105956d466b49a86cb08b3c5ea9de40c06213c91801d3500ec18a0f973e
|
data/CHANGELOG.md
CHANGED
@@ -1,13 +1,19 @@
|
|
1
|
-
For versions prior to v6, see the [5.x stable branch of rails/webpacker](https://github.com/rails/webpacker/tree/5-x-stable).
|
2
|
-
|
1
|
+
* For versions prior to v6, see the [5.x stable branch of rails/webpacker](https://github.com/rails/webpacker/tree/5-x-stable).
|
2
|
+
* Please see [UPGRADE GUIDE](./docs/v6_upgrade.md).
|
3
3
|
|
4
4
|
## Versions
|
5
5
|
### [Unreleased]
|
6
6
|
Changes since last non-beta release.
|
7
7
|
|
8
8
|
*Please add entries here for your pull requests that are not yet released.*
|
9
|
+
## [v6.0.0.rc.14] - January 20, 2022
|
10
|
+
|
11
|
+
### Improved
|
12
|
+
- Raise on multiple invocations of javascript_pack_tag and stylesheet_pack_tag helpers. [PR 19](https://github.com/shakacode/shakapacker/pull/19) by [tomdracz](https://github.com/tomdracz].
|
13
|
+
- Remove automatic addition of node_modules into rails asset load path. [PR 20](https://github.com/shakacode/shakapacker/pull/20) by [tomdracz](https://github.com/tomdracz].
|
14
|
+
- Remove pnp-webpack-plugin. [PR 21](https://github.com/shakacode/shakapacker/pull/21) by [tomdracz](https://github.com/tomdracz].
|
9
15
|
|
10
|
-
## [
|
16
|
+
## [v6.0.0.rc.13 changes from v6.0.0.rc.6]
|
11
17
|
|
12
18
|
### Merged from rails/webpacker
|
13
19
|
|
@@ -20,11 +26,9 @@ Changes since last non-beta release.
|
|
20
26
|
to `config/webpack/#{NODE_ENV}.js`.
|
21
27
|
- Changed all package.json dependencies to peerDependencies, so upgrading requires adding the dependencies, per the [UPGRADE GUIDE](./docs/v6_upgrade.md).
|
22
28
|
|
23
|
-
## [
|
29
|
+
## [v6.0.0.rc.6 changes from v5.4] - Forked January 16, 2022
|
24
30
|
|
25
|
-
Latest is rc.9.
|
26
31
|
|
27
|
-
Please see [UPGRADE GUIDE](./docs/v6_upgrade.md) for more information.
|
28
32
|
- `node_modules` will no longer be babel transfomed compiled by default. This primarily fixes [rails issue #35501](https://github.com/rails/rails/issues/35501) as well as [numerous other webpacker issues](https://github.com/rails/webpacker/issues/2131#issuecomment-581618497). The disabled loader can still be required explicitly via:
|
29
33
|
|
30
34
|
```js
|
@@ -48,6 +52,6 @@ Please see [UPGRADE GUIDE](./docs/v6_upgrade.md) for more information.
|
|
48
52
|
- CSS extraction enabled by default, except when devServer is configured and running
|
49
53
|
|
50
54
|
|
51
|
-
[Unreleased]: https://github.com/shakacode/shakapacker/compare/6.0.0-rc.
|
52
|
-
[
|
53
|
-
[
|
55
|
+
[Unreleased]: https://github.com/shakacode/shakapacker/compare/6.0.0-rc.13...master
|
56
|
+
[v6.0.0.rc.13 changes from v6.0.0.rc.6]: https://github.com/shakacode/shakapacker/compare/aba79635e6ff6562ec04d3c446d57ef19a5fef7d...v6.0.0-rc.13
|
57
|
+
[v6.0.0.rc.6 changes from v5.4]: https://github.com/rails/webpacker/compare/v5.4.3...aba79635e6ff6562ec04d3c446d57ef19a5fef7d
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -3,7 +3,9 @@
|
|
3
3
|
_Official, actively maintained fork of [rails/webpacker](https://github.com/rails/webpacker). For pre v6, see [rails/webpacker 5-x-stable](https://github.com/rails/webpacker/tree/5-x-stable). Be sure to see the [CHANGELOG](./CHANGELOG.md)._
|
4
4
|
|
5
5
|
* Note, internal naming will continue to use `webpacker` where possible.
|
6
|
-
* See [V6 Upgrade](./docs/v6_upgrade.md) for upgrading from v5 or prior v6 releases.
|
6
|
+
* See [V6 Upgrade](./docs/v6_upgrade.md) for upgrading from v5 or prior v6 releases. See this [PR from v6.0.0.rc.6 to shakapacker](https://github.com/shakacode/react_on_rails_tutorial_with_ssr_and_hmr_fast_refresh/pull/27).
|
7
|
+
* [Slack discussion channel](https://reactrails.slack.com/join/shared_invite/enQtNjY3NTczMjczNzYxLTlmYjdiZmY3MTVlMzU2YWE0OWM0MzNiZDI0MzdkZGFiZTFkYTFkOGVjODBmOWEyYWQ3MzA2NGE1YWJjNmVlMGE).
|
8
|
+
|
7
9
|
|
8
10
|
[](https://github.com/shakacode/shakapacker/actions)
|
9
11
|
[](https://github.com/shakacode/shakapacker/actions)
|
@@ -36,6 +38,7 @@ Discussion forums to discuss debugging and troubleshooting tips. Please open iss
|
|
36
38
|
- [Rails v6](#rails-v6)
|
37
39
|
- [Rails v7](#rails-v7)
|
38
40
|
- [Manual Installation Steps](#manual-installation-steps)
|
41
|
+
- [Note for Sprockets usage](#note-for-sprockets-usage)
|
39
42
|
- [Usage](#usage)
|
40
43
|
- [Defer for `javascript_pack_tag`](#defer-for-javascript_pack_tag)
|
41
44
|
- [Server-Side Rendering (SSR)](#server-side-rendering-ssr)
|
@@ -134,13 +137,22 @@ Note, in v6, most JS packages are peer dependencies. Thus, the installer will ad
|
|
134
137
|
|
135
138
|
```bash
|
136
139
|
yarn add @babel/core @babel/plugin-transform-runtime @babel/preset-env @babel/runtime babel-loader \
|
137
|
-
compression-webpack-plugin
|
140
|
+
compression-webpack-plugin terser-webpack-plugin \
|
138
141
|
webpack webpack-assets-manifest webpack-cli webpack-merge webpack-sources webpack-dev-server
|
139
142
|
```
|
140
143
|
|
141
144
|
Previously, these "webpack" and "babel" packages were direct dependencies for `webpacker`. By
|
142
145
|
making these peer dependencies, you have control over the versions used in your webpack and babel configs.
|
143
146
|
|
147
|
+
### Note for Sprockets usage
|
148
|
+
|
149
|
+
If you are still using Sprockets for some of your assets, you might want to include files from `node_modules` directory in your asset pipeline. This is useful, for example, if you want to reference a stylesheet from a node package in your `.scss` stylesheet.
|
150
|
+
|
151
|
+
In order to enable this, make sure you add `node_modules` to the asset load path by adding the following in an initializer (for example `config/initializers/assets.rb`)
|
152
|
+
```ruby
|
153
|
+
Rails.application.config.assets.paths << Rails.root.join('node_modules')
|
154
|
+
```
|
155
|
+
|
144
156
|
## Usage
|
145
157
|
|
146
158
|
Once installed, you can start writing modern ES6-flavored JavaScript apps right away:
|
data/docs/v6_upgrade.md
CHANGED
@@ -14,7 +14,7 @@ This means you have to configure integration with frameworks yourself, but webpa
|
|
14
14
|
See example migration, [PR 27](https://github.com/shakacode/react_on_rails_tutorial_with_ssr_and_hmr_fast_refresh/pull/27).
|
15
15
|
|
16
16
|
### Update
|
17
|
-
1. Peer dependencies. Run `yarn add @babel/core @babel/plugin-transform-runtime @babel/preset-env @babel/runtime babel-loader compression-webpack-plugin
|
17
|
+
1. Peer dependencies. Run `yarn add @babel/core @babel/plugin-transform-runtime @babel/preset-env @babel/runtime babel-loader compression-webpack-plugin terser-webpack-plugin webpack webpack-assets-manifest webpack-cli webpack-merge webpack-sources webpack-dev-server`
|
18
18
|
2. Update your webpack config for a single config file, `config/webpack/webpack.config.js`.
|
19
19
|
3. Update `babel.config.js` if you need JSX support.
|
20
20
|
|
@@ -41,13 +41,13 @@ See example migration, [PR 27](https://github.com/shakacode/react_on_rails_tutor
|
|
41
41
|
|
42
42
|
1. Upgrade the Webpacker Ruby gem and the NPM package
|
43
43
|
|
44
|
-
Note: [Check the
|
44
|
+
Note: [Check the gem page to verify the latest version](https://rubygems.org/gems/shakapacker), and make sure to install identical version numbers of `shakapacker` gem and package. (Gems use a period and packages use a dot between the main version number and the beta version.)
|
45
45
|
|
46
46
|
Example going to a specific version:
|
47
47
|
|
48
48
|
```ruby
|
49
49
|
# Gemfile
|
50
|
-
gem 'shakapacker', '6.0.0.rc.13'
|
50
|
+
gem 'shakapacker', '6.0.0.rc.13'
|
51
51
|
```
|
52
52
|
|
53
53
|
```bash
|
@@ -55,7 +55,7 @@ See example migration, [PR 27](https://github.com/shakacode/react_on_rails_tutor
|
|
55
55
|
```
|
56
56
|
|
57
57
|
```bash
|
58
|
-
yarn add shakapacker@6.0.0-rc.
|
58
|
+
yarn add shakapacker@6.0.0-rc.13 --exact
|
59
59
|
```
|
60
60
|
|
61
61
|
```bash
|
@@ -66,7 +66,7 @@ See example migration, [PR 27](https://github.com/shakacode/react_on_rails_tutor
|
|
66
66
|
|
67
67
|
Note, the webpacker:install will install the peer dependencies:
|
68
68
|
```bash
|
69
|
-
yarn add @babel/core @babel/plugin-transform-runtime @babel/preset-env @babel/runtime babel-loader compression-webpack-plugin
|
69
|
+
yarn add @babel/core @babel/plugin-transform-runtime @babel/preset-env @babel/runtime babel-loader compression-webpack-plugin terser-webpack-plugin webpack webpack-assets-manifest webpack-cli webpack-merge webpack-sources webpack-dev-server
|
70
70
|
```
|
71
71
|
|
72
72
|
1. There is now a single default configuration file of `config/webpack/webpack.config.js`. Previously, the config file was set
|
data/lib/install/template.rb
CHANGED
@@ -45,15 +45,6 @@ if (setup_path = Rails.root.join("bin/setup")).exist?
|
|
45
45
|
RUBY
|
46
46
|
end
|
47
47
|
|
48
|
-
if (asset_config_path = Rails.root.join("config/initializers/assets.rb")).exist?
|
49
|
-
say "Add node_modules to the asset load path"
|
50
|
-
append_to_file asset_config_path, <<-RUBY
|
51
|
-
|
52
|
-
# Add node_modules folder to the asset load path.
|
53
|
-
Rails.application.config.assets.paths << Rails.root.join("node_modules")
|
54
|
-
RUBY
|
55
|
-
end
|
56
|
-
|
57
48
|
if (csp_config_path = Rails.root.join("config/initializers/content_security_policy.rb")).exist?
|
58
49
|
say "Make note of webpack-dev-server exemption needed to csp"
|
59
50
|
insert_into_file csp_config_path, <<-RUBY, after: %(# Rails.application.config.content_security_policy do |policy|)
|
data/lib/webpacker/helper.rb
CHANGED
@@ -96,6 +96,13 @@ module Webpacker::Helper
|
|
96
96
|
# <%= javascript_pack_tag 'calendar' %>
|
97
97
|
# <%= javascript_pack_tag 'map' %>
|
98
98
|
def javascript_pack_tag(*names, defer: true, **options)
|
99
|
+
if @javascript_pack_tag_loaded
|
100
|
+
raise "To prevent duplicated chunks on the page, you should call javascript_pack_tag only once on the page. " \
|
101
|
+
"Please refer to https://github.com/shakacode/shakapacker/blob/master/README.md#usage for the usage guide"
|
102
|
+
end
|
103
|
+
|
104
|
+
@javascript_pack_tag_loaded = true
|
105
|
+
|
99
106
|
javascript_include_tag(*sources_from_manifest_entrypoints(names, type: :javascript), **options.tap { |o| o[:defer] = defer })
|
100
107
|
end
|
101
108
|
|
@@ -141,6 +148,13 @@ module Webpacker::Helper
|
|
141
148
|
# <%= stylesheet_pack_tag 'calendar' %>
|
142
149
|
# <%= stylesheet_pack_tag 'map' %>
|
143
150
|
def stylesheet_pack_tag(*names, **options)
|
151
|
+
if @stylesheet_pack_tag_loaded
|
152
|
+
raise "To prevent duplicated chunks on the page, you should call stylesheet_pack_tag only once on the page. " \
|
153
|
+
"Please refer to https://github.com/shakacode/shakapacker/blob/master/README.md#usage for the usage guide"
|
154
|
+
end
|
155
|
+
|
156
|
+
@stylesheet_pack_tag_loaded = true
|
157
|
+
|
144
158
|
return "" if Webpacker.inlining_css?
|
145
159
|
|
146
160
|
stylesheet_link_tag(*sources_from_manifest_entrypoints(names, type: :stylesheet), **options)
|
data/lib/webpacker/version.rb
CHANGED
@@ -3,7 +3,6 @@
|
|
3
3
|
|
4
4
|
const { basename, dirname, join, relative, resolve } = require('path')
|
5
5
|
const extname = require('path-complete-extname')
|
6
|
-
const PnpWebpackPlugin = require('pnp-webpack-plugin')
|
7
6
|
const { sync: globSync } = require('glob')
|
8
7
|
const WebpackAssetsManifest = require('webpack-assets-manifest')
|
9
8
|
const webpack = require('webpack')
|
@@ -92,15 +91,13 @@ module.exports = {
|
|
92
91
|
entry: getEntryObject(),
|
93
92
|
resolve: {
|
94
93
|
extensions: ['.js', '.jsx', '.mjs', '.ts', '.tsx', '.coffee'],
|
95
|
-
modules: getModulePaths()
|
96
|
-
plugins: [PnpWebpackPlugin]
|
94
|
+
modules: getModulePaths()
|
97
95
|
},
|
98
96
|
|
99
97
|
plugins: getPlugins(),
|
100
98
|
|
101
99
|
resolveLoader: {
|
102
|
-
modules: ['node_modules']
|
103
|
-
plugins: [PnpWebpackPlugin.moduleLoader(module)]
|
100
|
+
modules: ['node_modules']
|
104
101
|
},
|
105
102
|
|
106
103
|
optimization: {
|
data/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "shakapacker",
|
3
|
-
"version": "6.0.0-rc.
|
3
|
+
"version": "6.0.0-rc.14",
|
4
4
|
"description": "Use webpack to manage app-like JavaScript modules in Rails",
|
5
5
|
"main": "package/index.js",
|
6
6
|
"files": [
|
@@ -40,7 +40,6 @@
|
|
40
40
|
"eslint-plugin-jsx-a11y": "^6.4.1",
|
41
41
|
"eslint-plugin-react": "^7.26.0",
|
42
42
|
"jest": "^27.2.1",
|
43
|
-
"pnp-webpack-plugin": "^1.7.0",
|
44
43
|
"webpack": "^5.53.0",
|
45
44
|
"webpack-assets-manifest": "^5.0.6",
|
46
45
|
"webpack-merge": "^5.8.0"
|
data/test/helper_test.rb
CHANGED
@@ -12,6 +12,9 @@ class HelperTest < ActionView::TestCase
|
|
12
12
|
"https://example.com"
|
13
13
|
end
|
14
14
|
end.new
|
15
|
+
|
16
|
+
@javascript_pack_tag_loaded = nil
|
17
|
+
@stylesheet_pack_tag_loaded = nil
|
15
18
|
end
|
16
19
|
|
17
20
|
def test_asset_pack_path
|
@@ -129,6 +132,18 @@ class HelperTest < ActionView::TestCase
|
|
129
132
|
javascript_pack_tag(:application)
|
130
133
|
end
|
131
134
|
|
135
|
+
def test_javascript_pack_tag_multiple_invocations
|
136
|
+
error = assert_raises do
|
137
|
+
javascript_pack_tag(:application)
|
138
|
+
javascript_pack_tag(:bootstrap)
|
139
|
+
end
|
140
|
+
|
141
|
+
assert_equal \
|
142
|
+
"To prevent duplicated chunks on the page, you should call javascript_pack_tag only once on the page. " +
|
143
|
+
"Please refer to https://github.com/shakacode/shakapacker/blob/master/README.md#usage for the usage guide",
|
144
|
+
error.message
|
145
|
+
end
|
146
|
+
|
132
147
|
def application_stylesheet_chunks
|
133
148
|
%w[/packs/1-c20632e7baf2c81200d3.chunk.css /packs/application-k344a6d59eef8632c9d1.chunk.css]
|
134
149
|
end
|
@@ -156,4 +171,16 @@ class HelperTest < ActionView::TestCase
|
|
156
171
|
(application_stylesheet_chunks).map { |chunk| stylesheet_link_tag(chunk, media: "all") }.join("\n"),
|
157
172
|
stylesheet_pack_tag("application", media: "all")
|
158
173
|
end
|
174
|
+
|
175
|
+
def test_stylesheet_pack_tag_multiple_invocations
|
176
|
+
error = assert_raises do
|
177
|
+
stylesheet_pack_tag(:application)
|
178
|
+
stylesheet_pack_tag(:hello_stimulus)
|
179
|
+
end
|
180
|
+
|
181
|
+
assert_equal \
|
182
|
+
"To prevent duplicated chunks on the page, you should call stylesheet_pack_tag only once on the page. " +
|
183
|
+
"Please refer to https://github.com/shakacode/shakapacker/blob/master/README.md#usage for the usage guide",
|
184
|
+
error.message
|
185
|
+
end
|
159
186
|
end
|
data/yarn.lock
CHANGED
@@ -3215,13 +3215,6 @@ pkg-dir@^4.1.0, pkg-dir@^4.2.0:
|
|
3215
3215
|
dependencies:
|
3216
3216
|
find-up "^4.0.0"
|
3217
3217
|
|
3218
|
-
pnp-webpack-plugin@^1.7.0:
|
3219
|
-
version "1.7.0"
|
3220
|
-
resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.7.0.tgz#65741384f6d8056f36e2255a8d67ffc20866f5c9"
|
3221
|
-
integrity sha512-2Rb3vm+EXble/sMXNSu6eoBx8e79gKqhNq9F5ZWW6ERNCTE/Q0wQNne5541tE5vKjfM8hpNCYL+LGc1YTfI0dg==
|
3222
|
-
dependencies:
|
3223
|
-
ts-pnp "^1.1.6"
|
3224
|
-
|
3225
3218
|
prelude-ls@^1.2.1:
|
3226
3219
|
version "1.2.1"
|
3227
3220
|
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
|
@@ -3730,11 +3723,6 @@ tr46@^2.1.0:
|
|
3730
3723
|
dependencies:
|
3731
3724
|
punycode "^2.1.1"
|
3732
3725
|
|
3733
|
-
ts-pnp@^1.1.6:
|
3734
|
-
version "1.2.0"
|
3735
|
-
resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92"
|
3736
|
-
integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==
|
3737
|
-
|
3738
3726
|
tsconfig-paths@^3.12.0:
|
3739
3727
|
version "3.12.0"
|
3740
3728
|
resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz#19769aca6ee8f6a1a341e38c8fa45dd9fb18899b"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shakapacker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.0.0.rc.
|
4
|
+
version: 6.0.0.rc.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Heinemeier Hansson
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2022-01-
|
13
|
+
date: 2022-01-21 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|
@@ -269,7 +269,7 @@ homepage: https://github.com/shakacode/shakapacker
|
|
269
269
|
licenses:
|
270
270
|
- MIT
|
271
271
|
metadata:
|
272
|
-
source_code_uri: https://github.com/shakacode/shakapacker/tree/v6.0.0-rc.
|
272
|
+
source_code_uri: https://github.com/shakacode/shakapacker/tree/v6.0.0-rc.14
|
273
273
|
post_install_message:
|
274
274
|
rdoc_options: []
|
275
275
|
require_paths:
|