webpacker-jets 3.2.100
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.eslintignore +4 -0
- data/.eslintrc.js +14 -0
- data/.gitignore +6 -0
- data/.rubocop.yml +124 -0
- data/.travis.yml +32 -0
- data/CHANGELOG.md +523 -0
- data/Gemfile +13 -0
- data/Gemfile.lock +154 -0
- data/MIT-LICENSE +20 -0
- data/README.md +445 -0
- data/Rakefile +12 -0
- data/docs/assets.md +106 -0
- data/docs/cloud9.md +310 -0
- data/docs/css.md +116 -0
- data/docs/deployment.md +74 -0
- data/docs/docker.md +49 -0
- data/docs/env.md +65 -0
- data/docs/es6.md +53 -0
- data/docs/folder-structure.md +66 -0
- data/docs/misc.md +23 -0
- data/docs/props.md +223 -0
- data/docs/testing.md +128 -0
- data/docs/troubleshooting.md +119 -0
- data/docs/typescript.md +116 -0
- data/docs/webpack-dev-server.md +92 -0
- data/docs/webpack.md +297 -0
- data/docs/yarn.md +12 -0
- data/exe/webpack +8 -0
- data/exe/webpack-dev-server +8 -0
- data/gemfiles/Gemfile-rails-edge +13 -0
- data/gemfiles/Gemfile-rails.4.2.x +10 -0
- data/gemfiles/Gemfile-rails.5.0.x +10 -0
- data/gemfiles/Gemfile-rails.5.1.x +10 -0
- data/lib/install/angular.rb +27 -0
- data/lib/install/coffee.rb +22 -0
- data/lib/install/config/.babelrc +18 -0
- data/lib/install/config/.postcssrc.yml +3 -0
- data/lib/install/config/webpack/development.js +3 -0
- data/lib/install/config/webpack/environment.js +3 -0
- data/lib/install/config/webpack/production.js +3 -0
- data/lib/install/config/webpack/staging.js +3 -0
- data/lib/install/config/webpack/test.js +3 -0
- data/lib/install/config/webpacker.yml +79 -0
- data/lib/install/elm.rb +38 -0
- data/lib/install/erb.rb +22 -0
- data/lib/install/examples/angular/hello_angular.js +7 -0
- data/lib/install/examples/angular/hello_angular/app/app.component.ts +9 -0
- data/lib/install/examples/angular/hello_angular/app/app.module.ts +16 -0
- data/lib/install/examples/angular/hello_angular/index.ts +8 -0
- data/lib/install/examples/angular/hello_angular/polyfills.ts +73 -0
- data/lib/install/examples/angular/tsconfig.json +19 -0
- data/lib/install/examples/coffee/hello_coffee.coffee +4 -0
- data/lib/install/examples/elm/Main.elm +54 -0
- data/lib/install/examples/elm/hello_elm.js +12 -0
- data/lib/install/examples/erb/hello_erb.js.erb +6 -0
- data/lib/install/examples/react/.babelrc +6 -0
- data/lib/install/examples/react/hello_react.jsx +26 -0
- data/lib/install/examples/vue/app.vue +22 -0
- data/lib/install/examples/vue/hello_vue.js +70 -0
- data/lib/install/javascript/packs/application.js +10 -0
- data/lib/install/loaders/coffee.js +6 -0
- data/lib/install/loaders/elm.js +23 -0
- data/lib/install/loaders/erb.js +11 -0
- data/lib/install/loaders/typescript.js +6 -0
- data/lib/install/loaders/vue.js +13 -0
- data/lib/install/react.rb +28 -0
- data/lib/install/template.rb +37 -0
- data/lib/install/vue.rb +26 -0
- data/lib/tasks/installers.rake +24 -0
- data/lib/tasks/webpacker.rake +22 -0
- data/lib/tasks/webpacker/check_binstubs.rake +12 -0
- data/lib/tasks/webpacker/check_node.rake +24 -0
- data/lib/tasks/webpacker/check_yarn.rake +24 -0
- data/lib/tasks/webpacker/clobber.rake +16 -0
- data/lib/tasks/webpacker/compile.rake +41 -0
- data/lib/tasks/webpacker/install.rake +13 -0
- data/lib/tasks/webpacker/verify_install.rake +16 -0
- data/lib/tasks/webpacker/yarn_install.rake +6 -0
- data/lib/webpacker.rb +32 -0
- data/lib/webpacker/commands.rb +23 -0
- data/lib/webpacker/compiler.rb +88 -0
- data/lib/webpacker/configuration.rb +87 -0
- data/lib/webpacker/dev_server.rb +61 -0
- data/lib/webpacker/dev_server_proxy.rb +26 -0
- data/lib/webpacker/dev_server_runner.rb +51 -0
- data/lib/webpacker/helper.rb +66 -0
- data/lib/webpacker/instance.rb +44 -0
- data/lib/webpacker/manifest.rb +75 -0
- data/lib/webpacker/railtie.rb +82 -0
- data/lib/webpacker/rake_tasks.rb +6 -0
- data/lib/webpacker/runner.rb +22 -0
- data/lib/webpacker/version.rb +9 -0
- data/lib/webpacker/webpack_runner.rb +15 -0
- data/package.json +67 -0
- data/package/__tests__/environment.js +74 -0
- data/package/config.js +34 -0
- data/package/config_types/__tests__/config_list.js +123 -0
- data/package/config_types/__tests__/config_object.js +43 -0
- data/package/config_types/config_list.js +85 -0
- data/package/config_types/config_object.js +55 -0
- data/package/config_types/index.js +7 -0
- data/package/environment.js +116 -0
- data/package/environments/development.js +46 -0
- data/package/environments/production.js +37 -0
- data/package/environments/test.js +3 -0
- data/package/index.js +20 -0
- data/package/rules/babel.js +13 -0
- data/package/rules/css.js +39 -0
- data/package/rules/file.js +13 -0
- data/package/rules/index.js +11 -0
- data/package/rules/sass.js +15 -0
- data/package/utils/__tests__/deep_assign.js +11 -0
- data/package/utils/__tests__/deep_merge.js +10 -0
- data/package/utils/__tests__/objectify.js +9 -0
- data/package/utils/deep_assign.js +22 -0
- data/package/utils/deep_merge.js +23 -0
- data/package/utils/helpers.js +32 -0
- data/package/utils/objectify.js +4 -0
- data/test/command_test.rb +27 -0
- data/test/compiler_test.rb +35 -0
- data/test/configuration_test.rb +69 -0
- data/test/dev_server_test.rb +24 -0
- data/test/helper_test.rb +52 -0
- data/test/manifest_test.rb +28 -0
- data/test/rake_tasks_test.rb +29 -0
- data/test/test_app/Rakefile +3 -0
- data/test/test_app/app/javascript/packs/application.js +10 -0
- data/test/test_app/config/application.rb +11 -0
- data/test/test_app/config/environment.rb +4 -0
- data/test/test_app/config/webpacker.yml +65 -0
- data/test/test_app/public/packs/manifest.json +6 -0
- data/test/test_helper.rb +29 -0
- data/webpacker-jets.gemspec +29 -0
- data/yarn.lock +5768 -0
- metadata +250 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: bba74bedf0fdd79363526be7bedd09df55a3b98003ed8904881e6ca3b9531941
|
4
|
+
data.tar.gz: 0c8a3a3408168405f2af060e7e4cf8a59c935c36a38c40ec2a3b1b50fa656a31
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 337b284305fd2a4ca5020aa5cf463954bc0ceec2a287b614cdc8a34ef2700a23b5e94cf81894fb032c7c90f43b0ab55fe5d497e597a6d11203b7c45965d6b6e9
|
7
|
+
data.tar.gz: 128c98bd3117cb03bb8a3ffbbde5e10669bace9147c92d54e228a45e9371f02c0274cea052e433d7d95906376948e179b9c65640a164582a86e1146cb8c79851
|
data/.eslintignore
ADDED
data/.eslintrc.js
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
module.exports = {
|
2
|
+
'extends': 'airbnb',
|
3
|
+
'rules': {
|
4
|
+
'comma-dangle': ['error', 'never'],
|
5
|
+
'import/no-unresolved': 'off',
|
6
|
+
'import/no-extraneous-dependencies': 'off',
|
7
|
+
'import/extensions': 'off',
|
8
|
+
semi: ['error', 'never'],
|
9
|
+
},
|
10
|
+
'env': {
|
11
|
+
'browser': true,
|
12
|
+
'node': true,
|
13
|
+
},
|
14
|
+
};
|
data/.gitignore
ADDED
data/.rubocop.yml
ADDED
@@ -0,0 +1,124 @@
|
|
1
|
+
AllCops:
|
2
|
+
TargetRubyVersion: 2.2
|
3
|
+
# RuboCop has a bunch of cops enabled by default. This setting tells RuboCop
|
4
|
+
# to ignore them, so only the ones explicitly set in this file are enabled.
|
5
|
+
DisabledByDefault: true
|
6
|
+
Exclude:
|
7
|
+
- 'lib/install/templates/**'
|
8
|
+
- 'vendor/**/*'
|
9
|
+
- 'node_modules/**/*'
|
10
|
+
|
11
|
+
# Prefer &&/|| over and/or.
|
12
|
+
Style/AndOr:
|
13
|
+
Enabled: true
|
14
|
+
|
15
|
+
# Do not use braces for hash literals when they are the last argument of a
|
16
|
+
# method call.
|
17
|
+
Style/BracesAroundHashParameters:
|
18
|
+
Enabled: true
|
19
|
+
|
20
|
+
# Align `when` with `case`.
|
21
|
+
Layout/CaseIndentation:
|
22
|
+
Enabled: true
|
23
|
+
|
24
|
+
# Align comments with method definitions.
|
25
|
+
Layout/CommentIndentation:
|
26
|
+
Enabled: true
|
27
|
+
|
28
|
+
# No extra empty lines.
|
29
|
+
Layout/EmptyLines:
|
30
|
+
Enabled: true
|
31
|
+
|
32
|
+
# In a regular class definition, no empty lines around the body.
|
33
|
+
Layout/EmptyLinesAroundClassBody:
|
34
|
+
Enabled: true
|
35
|
+
|
36
|
+
# In a regular method definition, no empty lines around the body.
|
37
|
+
Layout/EmptyLinesAroundMethodBody:
|
38
|
+
Enabled: true
|
39
|
+
|
40
|
+
# In a regular module definition, no empty lines around the body.
|
41
|
+
Layout/EmptyLinesAroundModuleBody:
|
42
|
+
Enabled: true
|
43
|
+
|
44
|
+
# Use Ruby >= 1.9 syntax for hashes. Prefer { a: :b } over { :a => :b }.
|
45
|
+
Style/HashSyntax:
|
46
|
+
Enabled: true
|
47
|
+
|
48
|
+
# Method definitions after `private` or `protected` isolated calls need one
|
49
|
+
# extra level of indentation.
|
50
|
+
Layout/IndentationConsistency:
|
51
|
+
Enabled: true
|
52
|
+
EnforcedStyle: rails
|
53
|
+
|
54
|
+
# Two spaces, no tabs (for indentation).
|
55
|
+
Layout/IndentationWidth:
|
56
|
+
Enabled: true
|
57
|
+
|
58
|
+
Layout/SpaceAfterColon:
|
59
|
+
Enabled: true
|
60
|
+
|
61
|
+
Layout/SpaceAfterComma:
|
62
|
+
Enabled: true
|
63
|
+
|
64
|
+
Layout/SpaceAroundEqualsInParameterDefault:
|
65
|
+
Enabled: true
|
66
|
+
|
67
|
+
Layout/SpaceAroundKeyword:
|
68
|
+
Enabled: true
|
69
|
+
|
70
|
+
Layout/SpaceAroundOperators:
|
71
|
+
Enabled: true
|
72
|
+
|
73
|
+
Layout/SpaceBeforeFirstArg:
|
74
|
+
Enabled: true
|
75
|
+
|
76
|
+
# Defining a method with parameters needs parentheses.
|
77
|
+
Style/MethodDefParentheses:
|
78
|
+
Enabled: true
|
79
|
+
|
80
|
+
# Use `foo {}` not `foo{}`.
|
81
|
+
Layout/SpaceBeforeBlockBraces:
|
82
|
+
Enabled: true
|
83
|
+
|
84
|
+
# Use `foo { bar }` not `foo {bar}`.
|
85
|
+
Layout/SpaceInsideBlockBraces:
|
86
|
+
Enabled: true
|
87
|
+
|
88
|
+
# Use `{ a: 1 }` not `{a:1}`.
|
89
|
+
Layout/SpaceInsideHashLiteralBraces:
|
90
|
+
Enabled: true
|
91
|
+
|
92
|
+
Layout/SpaceInsideParens:
|
93
|
+
Enabled: true
|
94
|
+
|
95
|
+
# Check quotes usage according to lint rule below.
|
96
|
+
Style/StringLiterals:
|
97
|
+
Enabled: true
|
98
|
+
EnforcedStyle: double_quotes
|
99
|
+
|
100
|
+
# Detect hard tabs, no hard tabs.
|
101
|
+
Layout/Tab:
|
102
|
+
Enabled: true
|
103
|
+
|
104
|
+
# Blank lines should not have any spaces.
|
105
|
+
Layout/TrailingBlankLines:
|
106
|
+
Enabled: true
|
107
|
+
|
108
|
+
# No trailing whitespace.
|
109
|
+
Layout/TrailingWhitespace:
|
110
|
+
Enabled: true
|
111
|
+
|
112
|
+
# Use quotes for string literals when they are enough.
|
113
|
+
Style/UnneededPercentQ:
|
114
|
+
Enabled: true
|
115
|
+
|
116
|
+
# Align `end` with the matching keyword or starting expression except for
|
117
|
+
# assignments, where it should be aligned with the LHS.
|
118
|
+
Lint/EndAlignment:
|
119
|
+
Enabled: true
|
120
|
+
EnforcedStyleAlignWith: variable
|
121
|
+
|
122
|
+
# Use my_method(my_arg) not my_method( my_arg ) or my_method my_arg.
|
123
|
+
Lint/RequireParentheses:
|
124
|
+
Enabled: true
|
data/.travis.yml
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
sudo: false
|
2
|
+
language: ruby
|
3
|
+
rvm:
|
4
|
+
- 2.2.8
|
5
|
+
- 2.3.5
|
6
|
+
- 2.4.2
|
7
|
+
- ruby-head
|
8
|
+
gemfile:
|
9
|
+
- gemfiles/Gemfile-rails.4.2.x
|
10
|
+
- gemfiles/Gemfile-rails.5.0.x
|
11
|
+
- gemfiles/Gemfile-rails.5.1.x
|
12
|
+
- gemfiles/Gemfile-rails-edge
|
13
|
+
cache:
|
14
|
+
bundler: true
|
15
|
+
directories:
|
16
|
+
- node_modules
|
17
|
+
yarn: true
|
18
|
+
|
19
|
+
install:
|
20
|
+
- bundle install
|
21
|
+
- nvm install node
|
22
|
+
- node -v
|
23
|
+
- npm i -g yarn
|
24
|
+
- yarn
|
25
|
+
script:
|
26
|
+
- yarn lint
|
27
|
+
- yarn test
|
28
|
+
- bundle exec rubocop
|
29
|
+
- bundle exec rake test
|
30
|
+
matrix:
|
31
|
+
allow_failures:
|
32
|
+
- gemfile: gemfiles/Gemfile-rails-edge
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,523 @@
|
|
1
|
+
**Please note that Webpacker 3.1.0 and 3.1.1 has some serious bugs so please consider using either 3.0.2 or 3.2.0**
|
2
|
+
|
3
|
+
## [3.2.0] - 2017-12-16
|
4
|
+
|
5
|
+
### To upgrade:
|
6
|
+
|
7
|
+
```bash
|
8
|
+
bundle update webpacker
|
9
|
+
yarn upgrade @rails/webpacker
|
10
|
+
```
|
11
|
+
|
12
|
+
### Breaking changes
|
13
|
+
|
14
|
+
If you are using react, vue, angular, elm, erb or coffeescript inside your
|
15
|
+
`packs/` please re-run the integration installers as described in the README.
|
16
|
+
|
17
|
+
```bash
|
18
|
+
bundle exec rails webpacker:install:react
|
19
|
+
bundle exec rails webpacker:install:vue
|
20
|
+
bundle exec rails webpacker:install:angular
|
21
|
+
bundle exec rails webpacker:install:elm
|
22
|
+
bundle exec rails webpacker:install:erb
|
23
|
+
bundle exec rails webpacker:install:coffee
|
24
|
+
```
|
25
|
+
|
26
|
+
Or simply copy required loaders used in your app from
|
27
|
+
https://github.com/rails/webpacker/tree/master/lib/install/loaders
|
28
|
+
into your `config/webpack/loaders/`
|
29
|
+
directory and add it to webpack build from `config/webpack/environment.js`
|
30
|
+
|
31
|
+
```js
|
32
|
+
const erb = require('./loaders/erb')
|
33
|
+
const elm = require('./loaders/elm')
|
34
|
+
const typescript = require('./loaders/typescript')
|
35
|
+
const vue = require('./loaders/vue')
|
36
|
+
const coffee = require('./loaders/coffee')
|
37
|
+
|
38
|
+
environment.loaders.append('coffee', coffee)
|
39
|
+
environment.loaders.append('vue', vue)
|
40
|
+
environment.loaders.append('typescript', typescript)
|
41
|
+
environment.loaders.append('elm', elm)
|
42
|
+
environment.loaders.append('erb', erb)
|
43
|
+
```
|
44
|
+
|
45
|
+
In `.postcssrc.yml` you need to change the plugin name from `postcss-smart-import` to `postcss-import`:
|
46
|
+
|
47
|
+
```yml
|
48
|
+
plugins:
|
49
|
+
postcss-import: {}
|
50
|
+
postcss-cssnext: {}
|
51
|
+
```
|
52
|
+
|
53
|
+
### Added (npm module)
|
54
|
+
|
55
|
+
- Upgrade gems and webpack dependencies
|
56
|
+
|
57
|
+
- `postcss-import` in place of `postcss-smart-import`
|
58
|
+
|
59
|
+
|
60
|
+
### Removed (npm module)
|
61
|
+
|
62
|
+
- `postcss-smart-import`, `coffee-loader`, `url-loader`, `rails-erb-loader` as dependencies
|
63
|
+
|
64
|
+
- `publicPath` from file loader [#1107](https://github.com/rails/webpacker/pull/1107)
|
65
|
+
|
66
|
+
|
67
|
+
### Fixed (npm module)
|
68
|
+
|
69
|
+
- Return native array type for `ConfigList` [#1098](https://github.com/rails/webpacker/pull/1098)
|
70
|
+
|
71
|
+
|
72
|
+
### Added (Gem)
|
73
|
+
|
74
|
+
- New `asset_pack_url` helper [#1102](https://github.com/rails/webpacker/pull/1102)
|
75
|
+
|
76
|
+
- New installers for coffee and erb
|
77
|
+
|
78
|
+
```bash
|
79
|
+
bundle exec rails webpacker:install:erb
|
80
|
+
bundle exec rails webpacker:install:coffee
|
81
|
+
```
|
82
|
+
|
83
|
+
- Resolved paths from webpacker.yml to compiler watched list
|
84
|
+
|
85
|
+
|
86
|
+
## [3.1.1] - 2017-12-11
|
87
|
+
|
88
|
+
### Fixed
|
89
|
+
|
90
|
+
- Include default webpacker.yml config inside npm package
|
91
|
+
|
92
|
+
|
93
|
+
## [3.1.0] - 2017-12-11
|
94
|
+
|
95
|
+
|
96
|
+
### Added (npm module)
|
97
|
+
|
98
|
+
- Expose base config from environment
|
99
|
+
|
100
|
+
```js
|
101
|
+
environment.config.set('resolve.extensions', ['.foo', '.bar'])
|
102
|
+
environment.config.set('output.filename', '[name].js')
|
103
|
+
environment.config.delete('output.chunkFilename')
|
104
|
+
environment.config.get('resolve')
|
105
|
+
environment.config.merge({ output: {
|
106
|
+
filename: '[name].js'
|
107
|
+
}
|
108
|
+
})
|
109
|
+
```
|
110
|
+
|
111
|
+
- Expose new API's for loaders and plugins to insert at position
|
112
|
+
|
113
|
+
```js
|
114
|
+
const jsonLoader = {
|
115
|
+
test: /\.json$/,
|
116
|
+
exclude: /node_modules/,
|
117
|
+
loader: 'json-loader'
|
118
|
+
}
|
119
|
+
|
120
|
+
environment.loaders.append('json', jsonLoader)
|
121
|
+
environment.loaders.prepend('json', jsonLoader)
|
122
|
+
environment.loaders.insert('json', jsonLoader, { after: 'style' } )
|
123
|
+
environment.loaders.insert('json', jsonLoader, { before: 'babel' } )
|
124
|
+
|
125
|
+
// Update a plugin
|
126
|
+
const manifestPlugin = environment.plugins.get('Manifest')
|
127
|
+
manifestPlugin.opts.writeToFileEmit = false
|
128
|
+
|
129
|
+
// Update coffee loader to use coffeescript 2
|
130
|
+
const babelLoader = environment.loaders.get('babel')
|
131
|
+
environment.loaders.insert('coffee', {
|
132
|
+
test: /\.coffee(\.erb)?$/,
|
133
|
+
use: babelLoader.use.concat(['coffee-loader'])
|
134
|
+
}, { before: 'json' })
|
135
|
+
```
|
136
|
+
|
137
|
+
- Expose `resolve.modules` paths like loaders and plugins
|
138
|
+
|
139
|
+
```js
|
140
|
+
environment.resolvedModules.append('vendor', 'vendor')
|
141
|
+
```
|
142
|
+
|
143
|
+
- Enable sourcemaps in `style` and `css` loader
|
144
|
+
|
145
|
+
- Separate `css` and `sass` loader for easier configuration. `style` loader is now
|
146
|
+
`css` loader, which resolves `.css` files and `sass` loader resolves `.scss` and `.sass`
|
147
|
+
files.
|
148
|
+
|
149
|
+
```js
|
150
|
+
// Enable css modules with sass loader
|
151
|
+
const sassLoader = environment.loaders.get('sass')
|
152
|
+
const cssLoader = sassLoader.use.find(loader => loader.loader === 'css-loader')
|
153
|
+
|
154
|
+
cssLoader.options = Object.assign(cssLoader.options, {
|
155
|
+
modules: true,
|
156
|
+
localIdentName: '[path][name]__[local]--[hash:base64:5]'
|
157
|
+
})
|
158
|
+
```
|
159
|
+
|
160
|
+
- Expose rest of configurable dev server options from webpacker.yml
|
161
|
+
|
162
|
+
```yml
|
163
|
+
quiet: false
|
164
|
+
headers:
|
165
|
+
'Access-Control-Allow-Origin': '*'
|
166
|
+
watch_options:
|
167
|
+
ignored: /node_modules/
|
168
|
+
```
|
169
|
+
|
170
|
+
- `pretty` option to disable/enable color and progress output when running dev server
|
171
|
+
|
172
|
+
```yml
|
173
|
+
dev_server:
|
174
|
+
pretty: false
|
175
|
+
```
|
176
|
+
|
177
|
+
- Enforce deterministic loader order in desc order, starts processing from top to bottom
|
178
|
+
|
179
|
+
- Enforce the entire path of all required modules match the exact case of the actual path on disk using [case sensitive paths plugin](https://github.com/Urthen/case-sensitive-paths-webpack-plugin).
|
180
|
+
|
181
|
+
- Add url loader to process and embed smaller static files
|
182
|
+
|
183
|
+
|
184
|
+
### Removed
|
185
|
+
|
186
|
+
- resolve url loader [#1042](https://github.com/rails/webpacker/issues/1042)
|
187
|
+
|
188
|
+
### Added (Gem)
|
189
|
+
|
190
|
+
- Allow skipping webpacker compile using an env variable
|
191
|
+
|
192
|
+
```bash
|
193
|
+
WEBPACKER_PRECOMPILE=no|false|n|f
|
194
|
+
WEBPACKER_PRECOMPILE=false bundle exec rails assets:precompile
|
195
|
+
```
|
196
|
+
|
197
|
+
- Use `WEBPACKER_ASSET_HOST` instead of `ASSET_HOST` for CDN
|
198
|
+
|
199
|
+
- Alias `webpacker:compile` task to `assets:precompile` if is not defined so it works
|
200
|
+
without sprockets
|
201
|
+
|
202
|
+
|
203
|
+
## [3.0.2] - 2017-10-04
|
204
|
+
|
205
|
+
### Added
|
206
|
+
|
207
|
+
- Allow dev server connect timeout (in seconds) to be configurable, default: 0.01
|
208
|
+
|
209
|
+
```rb
|
210
|
+
# Change to 1s
|
211
|
+
Webpacker.dev_server.connect_timeout = 1
|
212
|
+
```
|
213
|
+
|
214
|
+
- Restrict the source maps generated in production [#770](https://github.com/rails/webpacker/pull/770)
|
215
|
+
|
216
|
+
- Binstubs [#833](https://github.com/rails/webpacker/pull/833)
|
217
|
+
|
218
|
+
- Allow dev server settings to be overriden by env variables [#843](https://github.com/rails/webpacker/pull/843)
|
219
|
+
|
220
|
+
- A new `lookup` method to manifest to perform lookup without raise and return `nil`
|
221
|
+
|
222
|
+
```rb
|
223
|
+
Webpacker.manifest.lookup('foo.js')
|
224
|
+
# => nil
|
225
|
+
Webpacker.manifest.lookup!('foo.js')
|
226
|
+
# => raises Webpacker::Manifest::MissingEntryError
|
227
|
+
```
|
228
|
+
|
229
|
+
- Catch all exceptions in `DevServer.running?` and return false [#878](https://github.com/rails/webpacker/pull/878)
|
230
|
+
|
231
|
+
### Removed
|
232
|
+
|
233
|
+
- Inline CLI args for dev server binstub, use env variables instead
|
234
|
+
|
235
|
+
- Coffeescript as core dependency. You have to manually add coffeescript now, if you are using
|
236
|
+
it in your app.
|
237
|
+
|
238
|
+
```bash
|
239
|
+
yarn add coffeescript@1.12.7
|
240
|
+
|
241
|
+
# OR coffeescript 2.0
|
242
|
+
yarn add coffeescript
|
243
|
+
```
|
244
|
+
|
245
|
+
## [3.0.1] - 2017-09-01
|
246
|
+
|
247
|
+
### Fixed
|
248
|
+
|
249
|
+
- Missing `node_modules/.bin/*` files by bumping minimum Yarn version to 0.25.2 [#727](https://github.com/rails/webpacker/pull/727)
|
250
|
+
|
251
|
+
- `webpacker:compile` task so that fails properly when webpack compilation fails [#728](https://github.com/rails/webpacker/pull/728)
|
252
|
+
|
253
|
+
- Rack dev server proxy middleware when served under another proxy (example: pow), which uses `HTTP_X_FORWARDED_HOST` header resulting in `404` for webpacker assets
|
254
|
+
|
255
|
+
- Make sure tagged logger works with rails < 5 [#716](https://github.com/rails/webpacker/pull/716)
|
256
|
+
|
257
|
+
### Added
|
258
|
+
|
259
|
+
- Allow webpack dev server listen host/ip to be configurable using additional `--listen-host` option
|
260
|
+
|
261
|
+
```bash
|
262
|
+
./bin/webpack-dev-server --listen-host 0.0.0.0 --host localhost
|
263
|
+
```
|
264
|
+
|
265
|
+
### Removed
|
266
|
+
|
267
|
+
- `watchContentBase` from devServer config so it doesn't unncessarily trigger
|
268
|
+
live reload when manifest changes. If you have applied this workaround from [#724](https://github.com/rails/webpacker/issues/724), please revert the change from `config/webpack/development.js` since this is now fixed.
|
269
|
+
|
270
|
+
|
271
|
+
## [3.0.0] - 2017-08-30
|
272
|
+
|
273
|
+
### Added
|
274
|
+
|
275
|
+
- `resolved_paths` option to allow adding additional paths webpack should lookup when resolving modules
|
276
|
+
|
277
|
+
```yml
|
278
|
+
# config/webpacker.yml
|
279
|
+
# Additional paths webpack should lookup modules
|
280
|
+
resolved_paths: [] # empty by default
|
281
|
+
```
|
282
|
+
|
283
|
+
- `Webpacker::Compiler.fresh?` and `Webpacker::Compiler.stale?` answer the question of whether compilation is needed.
|
284
|
+
The old `Webpacker::Compiler.compile?` predicate is deprecated.
|
285
|
+
|
286
|
+
- Dev server config class that exposes config options through singleton.
|
287
|
+
|
288
|
+
```rb
|
289
|
+
Webpacker.dev_server.running?
|
290
|
+
```
|
291
|
+
|
292
|
+
- Rack middleware proxies webpacker requests to dev server so we can always serve from same-origin and the lookup works out of the box - no more paths prefixing
|
293
|
+
|
294
|
+
- `env` attribute on `Webpacker::Compiler` allows setting custom environment variables that the compilation is being run with
|
295
|
+
|
296
|
+
```rb
|
297
|
+
Webpacker::Compiler.env['FRONTEND_API_KEY'] = 'your_secret_key'
|
298
|
+
```
|
299
|
+
|
300
|
+
### Breaking changes
|
301
|
+
|
302
|
+
**Note:** requires running `jets webpacker:install`
|
303
|
+
|
304
|
+
`config/webpack/**/*.js`:
|
305
|
+
|
306
|
+
- The majority of this config moved to the [@rails/webpacker npm package](https://www.npmjs.com/package/@rails/webpacker). `webpacker:install` only creates `config/webpack/{environment,development,test,production}.js` now so if you're upgrading from a previous version you can remove all other files.
|
307
|
+
|
308
|
+
`webpacker.yml`:
|
309
|
+
|
310
|
+
- Move dev-server config options under defaults so it's transparently available in all environments
|
311
|
+
|
312
|
+
- Add new `HMR` option for hot-module-replacement
|
313
|
+
|
314
|
+
- Add HTTPS
|
315
|
+
|
316
|
+
### Removed
|
317
|
+
|
318
|
+
- Host info from manifest.json, now looks like this:
|
319
|
+
|
320
|
+
```json
|
321
|
+
{
|
322
|
+
"hello_react.js": "/packs/hello_react.js"
|
323
|
+
}
|
324
|
+
```
|
325
|
+
|
326
|
+
### Fixed
|
327
|
+
|
328
|
+
- Update `webpack-dev-server.tt` to respect RAILS_ENV and NODE_ENV values [#502](https://github.com/rails/webpacker/issues/502)
|
329
|
+
- Use `0.0.0.0` as default listen address for `webpack-dev-server`
|
330
|
+
- Serve assets using `localhost` from dev server - [#424](https://github.com/rails/webpacker/issues/424)
|
331
|
+
|
332
|
+
```yml
|
333
|
+
dev_server:
|
334
|
+
host: localhost
|
335
|
+
```
|
336
|
+
|
337
|
+
- On Windows, `ruby bin/webpacker` and `ruby bin/webpacker-dev-server` will now bypass yarn, and execute via `node_modules/.bin` directly - [#584](https://github.com/rails/webpacker/pull/584)
|
338
|
+
|
339
|
+
### Breaking changes
|
340
|
+
|
341
|
+
- Add `compile` and `cache_path` options to `config/webpacker.yml` for configuring lazy compilation of packs when a file under tracked paths is changed [#503](https://github.com/rails/webpacker/pull/503). To enable expected behavior, update `config/webpacker.yml`:
|
342
|
+
|
343
|
+
```yaml
|
344
|
+
default: &default
|
345
|
+
cache_path: tmp/cache/webpacker
|
346
|
+
test:
|
347
|
+
compile: true
|
348
|
+
|
349
|
+
development:
|
350
|
+
compile: true
|
351
|
+
|
352
|
+
production:
|
353
|
+
compile: false
|
354
|
+
```
|
355
|
+
|
356
|
+
- Make test compilation cacheable and configurable so that the lazy compilation
|
357
|
+
only triggers if files are changed under tracked paths.
|
358
|
+
Following paths are watched by default -
|
359
|
+
|
360
|
+
```rb
|
361
|
+
["app/javascript/**/*", "yarn.lock", "package.json", "config/webpack/**/*"]
|
362
|
+
```
|
363
|
+
|
364
|
+
To add more paths:
|
365
|
+
|
366
|
+
```rb
|
367
|
+
# config/initializers/webpacker.rb or config/application.rb
|
368
|
+
Webpacker::Compiler.watched_paths << 'bower_components'
|
369
|
+
```
|
370
|
+
|
371
|
+
## [2.0] - 2017-05-24
|
372
|
+
|
373
|
+
### Fixed
|
374
|
+
- Update `.babelrc` to fix compilation issues - [#306](https://github.com/rails/webpacker/issues/306)
|
375
|
+
|
376
|
+
- Duplicated asset hosts - [#320](https://github.com/rails/webpacker/issues/320), [#397](https://github.com/rails/webpacker/pull/397)
|
377
|
+
|
378
|
+
- Missing asset host when defined as a `Proc` or on `ActionController::Base.asset_host` directly - [#397](https://github.com/rails/webpacker/pull/397)
|
379
|
+
|
380
|
+
- Incorrect asset host when running `webpacker:compile` or `bin/webpack` in development mode - [#397](https://github.com/rails/webpacker/pull/397)
|
381
|
+
|
382
|
+
- Update `webpacker:compile` task to use `stdout` and `stderr` for better logging - [#395](https://github.com/rails/webpacker/issues/395)
|
383
|
+
|
384
|
+
- ARGV support for `webpack-dev-server` - [#286](https://github.com/rails/webpacker/issues/286)
|
385
|
+
|
386
|
+
|
387
|
+
### Added
|
388
|
+
- [Elm](http://elm-lang.org) support. You can now add Elm support via the following methods:
|
389
|
+
- New app: `rails new <app> --webpack=elm`
|
390
|
+
- Within an existing app: `rails webpacker:install:elm`
|
391
|
+
|
392
|
+
- Support for custom `public_output_path` paths independent of `source_entry_path` in `config/webpacker.yml`. `output` is also now relative to `public/`. - [#397](https://github.com/rails/webpacker/pull/397)
|
393
|
+
|
394
|
+
Before (compile to `public/packs`):
|
395
|
+
```yaml
|
396
|
+
source_entry_path: packs
|
397
|
+
public_output_path: packs
|
398
|
+
```
|
399
|
+
After (compile to `public/sweet/js`):
|
400
|
+
```yaml
|
401
|
+
source_entry_path: packs
|
402
|
+
public_output_path: sweet/js
|
403
|
+
```
|
404
|
+
|
405
|
+
- `https` option to use `https` mode, particularly on platforms like - https://community.c9.io/t/running-a-rails-app/1615 or locally - [#176](https://github.com/rails/webpacker/issues/176)
|
406
|
+
|
407
|
+
- [Babel] Dynamic import() and Class Fields and Static Properties babel plugin to `.babelrc`
|
408
|
+
|
409
|
+
```json
|
410
|
+
{
|
411
|
+
"presets": [
|
412
|
+
["env", {
|
413
|
+
"modules": false,
|
414
|
+
"targets": {
|
415
|
+
"browsers": "> 1%",
|
416
|
+
"uglify": true
|
417
|
+
},
|
418
|
+
"useBuiltIns": true
|
419
|
+
}]
|
420
|
+
],
|
421
|
+
|
422
|
+
"plugins": [
|
423
|
+
"syntax-dynamic-import",
|
424
|
+
"transform-class-properties", { "spec": true }
|
425
|
+
]
|
426
|
+
}
|
427
|
+
```
|
428
|
+
|
429
|
+
- Source-map support for production bundle
|
430
|
+
|
431
|
+
|
432
|
+
#### Breaking Change
|
433
|
+
|
434
|
+
- Consolidate and flatten `paths.yml` and `development.server.yml` config into one file - `config/webpacker.yml` - [#403](https://github.com/rails/webpacker/pull/403). This is a breaking change and requires you to re-install webpacker and cleanup old configuration files.
|
435
|
+
|
436
|
+
```bash
|
437
|
+
bundle update webpacker
|
438
|
+
jets webpacker:install
|
439
|
+
|
440
|
+
# Remove old/unused configuration files
|
441
|
+
rm config/webpack/paths.yml
|
442
|
+
rm config/webpack/development.server.yml
|
443
|
+
rm config/webpack/development.server.js
|
444
|
+
```
|
445
|
+
|
446
|
+
__Warning__: For now you also have to add a pattern in `.gitignore` by hand.
|
447
|
+
```diff
|
448
|
+
/public/packs
|
449
|
+
+/public/packs-test
|
450
|
+
/node_modules
|
451
|
+
```
|
452
|
+
|
453
|
+
## [1.2] - 2017-04-27
|
454
|
+
Some of the changes made requires you to run below commands to install new changes.
|
455
|
+
|
456
|
+
```
|
457
|
+
bundle update webpacker
|
458
|
+
jets webpacker:install
|
459
|
+
```
|
460
|
+
|
461
|
+
|
462
|
+
### Fixed
|
463
|
+
- Support Spring - [#205](https://github.com/rails/webpacker/issues/205)
|
464
|
+
|
465
|
+
```ruby
|
466
|
+
Spring.after_fork { Webpacker.bootstrap } if defined?(Spring)
|
467
|
+
```
|
468
|
+
- Check node version and yarn before installing webpacker - [#217](https://github.com/rails/webpacker/issues/217)
|
469
|
+
|
470
|
+
- Include webpacker helper to views - [#172](https://github.com/rails/webpacker/issues/172)
|
471
|
+
|
472
|
+
- Webpacker installer on windows - [#245](https://github.com/rails/webpacker/issues/245)
|
473
|
+
|
474
|
+
- Yarn duplication - [#278](https://github.com/rails/webpacker/issues/278)
|
475
|
+
|
476
|
+
- Add back Spring for `rails-erb-loader` - [#216](https://github.com/rails/webpacker/issues/216)
|
477
|
+
|
478
|
+
- Move babel presets and plugins to .babelrc - [#202](https://github.com/rails/webpacker/issues/202)
|
479
|
+
|
480
|
+
|
481
|
+
### Added
|
482
|
+
- A changelog - [#211](https://github.com/rails/webpacker/issues/211)
|
483
|
+
- Minimize CSS assets - [#218](https://github.com/rails/webpacker/issues/218)
|
484
|
+
- Pack namespacing support - [#201](https://github.com/rails/webpacker/pull/201)
|
485
|
+
|
486
|
+
For example:
|
487
|
+
```
|
488
|
+
app/javascript/packs/admin/hello_vue.js
|
489
|
+
app/javascript/packs/admin/hello.vue
|
490
|
+
app/javascript/packs/hello_vue.js
|
491
|
+
app/javascript/packs/hello.vue
|
492
|
+
```
|
493
|
+
- Add tree-shaking support - [#250](https://github.com/rails/webpacker/pull/250)
|
494
|
+
- Add initial test case by @kimquy [#259](https://github.com/rails/webpacker/pull/259)
|
495
|
+
- Compile assets before test:controllers and test:system
|
496
|
+
|
497
|
+
|
498
|
+
### Removed
|
499
|
+
- Webpack watcher - [#295](https://github.com/rails/webpacker/pull/295)
|
500
|
+
|
501
|
+
|
502
|
+
## [1.1] - 2017-03-24
|
503
|
+
|
504
|
+
This release requires you to run below commands to install new features.
|
505
|
+
|
506
|
+
```
|
507
|
+
bundle update webpacker
|
508
|
+
jets webpacker:install
|
509
|
+
|
510
|
+
# if installed react, vue or angular
|
511
|
+
jets webpacker:install:[react, angular, vue]
|
512
|
+
```
|
513
|
+
|
514
|
+
### Added (breaking changes)
|
515
|
+
- Static assets support - [#153](https://github.com/rails/webpacker/pull/153)
|
516
|
+
- Advanced webpack configuration - [#153](https://github.com/rails/webpacker/pull/153)
|
517
|
+
|
518
|
+
|
519
|
+
### Removed
|
520
|
+
|
521
|
+
```rb
|
522
|
+
config.x.webpacker[:digesting] = true
|
523
|
+
```
|