webpacker 3.6.0 → 4.0.0.pre.pre.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +0 -3
- data/CHANGELOG.md +6 -43
- data/Gemfile.lock +48 -58
- data/README.md +11 -11
- data/Rakefile +2 -1
- data/docs/cloud9.md +1 -1
- data/docs/css.md +0 -10
- data/docs/troubleshooting.md +2 -2
- data/lib/install/angular.rb +2 -2
- data/lib/install/bin/webpack +1 -1
- data/lib/install/bin/webpack-dev-server +1 -1
- data/lib/install/config/webpacker.yml +1 -2
- data/lib/install/elm.rb +3 -4
- data/lib/install/examples/elm/Main.elm +4 -5
- data/lib/install/examples/elm/hello_elm.js +2 -6
- data/lib/install/examples/vue/hello_vue.js +1 -1
- data/lib/install/loaders/elm.js +4 -3
- data/lib/install/loaders/vue.js +1 -3
- data/lib/install/template.rb +3 -3
- data/lib/install/typescript.rb +1 -1
- data/lib/install/vue.rb +13 -4
- data/lib/tasks/webpacker.rake +0 -1
- data/lib/tasks/webpacker/yarn_install.rake +1 -1
- data/lib/webpacker.rb +0 -1
- data/lib/webpacker/compiler.rb +2 -4
- data/lib/webpacker/configuration.rb +3 -13
- data/lib/webpacker/dev_server.rb +4 -8
- data/lib/webpacker/dev_server_proxy.rb +0 -4
- data/lib/webpacker/dev_server_runner.rb +7 -15
- data/lib/webpacker/env.rb +1 -1
- data/lib/webpacker/helper.rb +0 -10
- data/lib/webpacker/instance.rb +2 -6
- data/lib/webpacker/railtie.rb +1 -2
- data/lib/webpacker/version.rb +1 -1
- data/package.json +16 -16
- data/package/__tests__/config.js +1 -17
- data/package/__tests__/production.js +1 -3
- data/package/__tests__/staging.js +1 -3
- data/package/__tests__/test.js +1 -3
- data/package/config.js +1 -9
- data/package/dev_server.js +1 -1
- data/package/env.js +2 -2
- data/package/environments/base.js +22 -5
- data/package/environments/development.js +2 -0
- data/package/environments/production.js +26 -36
- data/package/utils/__tests__/deep_assign.js +6 -27
- data/package/utils/deep_assign.js +1 -1
- data/package/utils/get_style_rule.js +26 -37
- data/test/configuration_test.rb +22 -46
- data/test/helper_test.rb +0 -6
- data/test/test_app/config/webpacker.yml +0 -1
- data/test/test_helper.rb +0 -2
- data/webpacker.gemspec +0 -5
- data/yarn.lock +2199 -998
- metadata +6 -11
- data/lib/tasks/webpacker/info.rake +0 -19
- data/test/webpacker_test.rb +0 -13
data/lib/install/elm.rb
CHANGED
@@ -22,15 +22,14 @@ copy_file "#{__dir__}/examples/elm/Main.elm",
|
|
22
22
|
|
23
23
|
say "Installing all Elm dependencies"
|
24
24
|
run "yarn add elm elm-webpack-loader"
|
25
|
-
run "yarn add --dev elm-hot-
|
26
|
-
run "yarn run elm
|
27
|
-
run "yarn run elm make"
|
25
|
+
run "yarn add --dev elm-hot-loader"
|
26
|
+
run "yarn run elm package install -- --yes"
|
28
27
|
|
29
28
|
say "Updating webpack paths to include .elm file extension"
|
30
29
|
insert_into_file Webpacker.config.config_path, " - .elm\n", after: /extensions:\n/
|
31
30
|
|
32
31
|
say "Updating Elm source location"
|
33
|
-
gsub_file "elm.json", /\"
|
32
|
+
gsub_file "elm-package.json", /\"\.\"\n/,
|
34
33
|
%("#{Webpacker.config.source_path.relative_path_from(Rails.root)}"\n)
|
35
34
|
|
36
35
|
say "Updating .gitignore to include elm-stuff folder"
|
@@ -1,6 +1,5 @@
|
|
1
1
|
module Main exposing (..)
|
2
2
|
|
3
|
-
import Browser
|
4
3
|
import Html exposing (Html, h1, text)
|
5
4
|
import Html.Attributes exposing (style)
|
6
5
|
|
@@ -22,7 +21,7 @@ view : Model -> Html Message
|
|
22
21
|
view model =
|
23
22
|
-- The inline style is being used for example purposes in order to keep this example simple and
|
24
23
|
-- avoid loading additional resources. Use a proper stylesheet when building your own app.
|
25
|
-
h1 [style "display" "flex",
|
24
|
+
h1 [style [("display", "flex"), ("justify-content", "center")]]
|
26
25
|
[text "Hello Elm!"]
|
27
26
|
|
28
27
|
-- MESSAGE
|
@@ -44,11 +43,11 @@ subscriptions model =
|
|
44
43
|
|
45
44
|
-- MAIN
|
46
45
|
|
47
|
-
main : Program
|
46
|
+
main : Program Never Model Message
|
48
47
|
main =
|
49
|
-
|
48
|
+
Html.program
|
50
49
|
{
|
51
|
-
init =
|
50
|
+
init = init,
|
52
51
|
view = view,
|
53
52
|
update = update,
|
54
53
|
subscriptions = subscriptions
|
@@ -2,15 +2,11 @@
|
|
2
2
|
// head of your layout file, like app/views/layouts/application.html.erb.
|
3
3
|
// It will render "Hello Elm!" within the page.
|
4
4
|
|
5
|
-
import
|
6
|
-
Elm
|
7
|
-
} from '../Main'
|
5
|
+
import Elm from '../Main'
|
8
6
|
|
9
7
|
document.addEventListener('DOMContentLoaded', () => {
|
10
8
|
const target = document.createElement('div')
|
11
9
|
|
12
10
|
document.body.appendChild(target)
|
13
|
-
Elm.Main.
|
14
|
-
node: target
|
15
|
-
})
|
11
|
+
Elm.Main.embed(target)
|
16
12
|
})
|
@@ -54,7 +54,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
|
54
54
|
//
|
55
55
|
// Then uncomment the code block below:
|
56
56
|
//
|
57
|
-
// import TurbolinksAdapter from 'vue-turbolinks'
|
57
|
+
// import TurbolinksAdapter from 'vue-turbolinks';
|
58
58
|
// import Vue from 'vue/dist/vue.esm'
|
59
59
|
// import App from '../app.vue'
|
60
60
|
//
|
data/lib/install/loaders/elm.js
CHANGED
@@ -2,11 +2,12 @@ const { resolve } = require('path')
|
|
2
2
|
|
3
3
|
const isProduction = process.env.NODE_ENV === 'production'
|
4
4
|
const elmSource = resolve(process.cwd())
|
5
|
-
const
|
5
|
+
const elmMake = `${elmSource}/node_modules/.bin/elm-make`
|
6
6
|
|
7
|
-
const elmDefaultOptions = { cwd: elmSource,
|
7
|
+
const elmDefaultOptions = { cwd: elmSource, pathToMake: elmMake }
|
8
8
|
const developmentOptions = Object.assign({}, elmDefaultOptions, {
|
9
9
|
verbose: true,
|
10
|
+
warn: true,
|
10
11
|
debug: true
|
11
12
|
})
|
12
13
|
|
@@ -18,5 +19,5 @@ const elmWebpackLoader = {
|
|
18
19
|
module.exports = {
|
19
20
|
test: /\.elm(\.erb)?$/,
|
20
21
|
exclude: [/elm-stuff/, /node_modules/],
|
21
|
-
use: isProduction ? [elmWebpackLoader] : [{ loader: 'elm-hot-
|
22
|
+
use: isProduction ? [elmWebpackLoader] : [{ loader: 'elm-hot-loader' }, elmWebpackLoader]
|
22
23
|
}
|
data/lib/install/loaders/vue.js
CHANGED
@@ -2,12 +2,10 @@ const { dev_server: devServer } = require('@rails/webpacker').config
|
|
2
2
|
|
3
3
|
const isProduction = process.env.NODE_ENV === 'production'
|
4
4
|
const inDevServer = process.argv.find(v => v.includes('webpack-dev-server'))
|
5
|
-
const extractCSS = !(inDevServer && (devServer && devServer.hmr)) || isProduction
|
6
5
|
|
7
6
|
module.exports = {
|
8
7
|
test: /\.vue(\.erb)?$/,
|
9
8
|
use: [{
|
10
|
-
loader: 'vue-loader'
|
11
|
-
options: { extractCSS }
|
9
|
+
loader: 'vue-loader'
|
12
10
|
}]
|
13
11
|
}
|
data/lib/install/template.rb
CHANGED
@@ -19,7 +19,7 @@ say "Adding configurations"
|
|
19
19
|
|
20
20
|
check_yarn_integrity_config = ->(value) { <<CONFIG }
|
21
21
|
# Verifies that versions and hashed value of the package contents in the project's package.json
|
22
|
-
config.webpacker.check_yarn_integrity = #{value}
|
22
|
+
config.webpacker.check_yarn_integrity = #{value}
|
23
23
|
CONFIG
|
24
24
|
|
25
25
|
if Rails::VERSION::MAJOR >= 5
|
@@ -41,7 +41,7 @@ EOS
|
|
41
41
|
end
|
42
42
|
|
43
43
|
say "Installing all JavaScript dependencies"
|
44
|
-
run "yarn add @rails/webpacker
|
44
|
+
run "yarn add @rails/webpacker"
|
45
45
|
|
46
46
|
say "Installing dev server for live reloading"
|
47
47
|
run "yarn add --dev webpack-dev-server@2.11.2"
|
@@ -50,7 +50,7 @@ if Rails::VERSION::MAJOR == 5 && Rails::VERSION::MINOR > 1
|
|
50
50
|
say "You need to allow webpack-dev-server host as allowed origin for connect-src.", :yellow
|
51
51
|
say "This can be done in Rails 5.2+ for development environment in the CSP initializer", :yellow
|
52
52
|
say "config/initializers/content_security_policy.rb with a snippet like this:", :yellow
|
53
|
-
say "
|
53
|
+
say "p.connect_src :self, :https, \"http://localhost:3035\", \"ws://localhost:3035\" if Rails.env.development?", :yellow
|
54
54
|
end
|
55
55
|
|
56
56
|
say "Webpacker successfully installed 🎉 🍰", :green
|
data/lib/install/typescript.rb
CHANGED
@@ -41,6 +41,6 @@ copy_file "#{__dir__}/examples/typescript/hello_typescript.ts",
|
|
41
41
|
"#{Webpacker.config.source_entry_path}/hello_typescript.ts"
|
42
42
|
|
43
43
|
say "Installing all typescript dependencies"
|
44
|
-
run "yarn add typescript ts-loader
|
44
|
+
run "yarn add typescript ts-loader #{additional_packages}"
|
45
45
|
|
46
46
|
say "Webpacker now supports typescript 🎉", :green
|
data/lib/install/vue.rb
CHANGED
@@ -3,10 +3,19 @@ require "webpacker/configuration"
|
|
3
3
|
say "Copying vue loader to config/webpack/loaders"
|
4
4
|
copy_file "#{__dir__}/loaders/vue.js", Rails.root.join("config/webpack/loaders/vue.js").to_s
|
5
5
|
|
6
|
+
say "Adding vue loader plugin to config/webpack/environment.js"
|
7
|
+
insert_into_file Rails.root.join("config/webpack/environment.js").to_s,
|
8
|
+
"const { VueLoaderPlugin } = require('vue-loader')\n",
|
9
|
+
after: "require('@rails/webpacker')\n"
|
10
|
+
|
11
|
+
insert_into_file Rails.root.join("config/webpack/environment.js").to_s,
|
12
|
+
"environment.plugins.append('VueLoaderPlugin', new VueLoaderPlugin())\n",
|
13
|
+
before: "module.exports"
|
14
|
+
|
6
15
|
say "Adding vue loader to config/webpack/environment.js"
|
7
16
|
insert_into_file Rails.root.join("config/webpack/environment.js").to_s,
|
8
17
|
"const vue = require('./loaders/vue')\n",
|
9
|
-
after: "require('
|
18
|
+
after: "require('vue-loader')\n"
|
10
19
|
|
11
20
|
insert_into_file Rails.root.join("config/webpack/environment.js").to_s,
|
12
21
|
"environment.loaders.append('vue', vue)\n",
|
@@ -24,16 +33,16 @@ copy_file "#{__dir__}/examples/vue/app.vue",
|
|
24
33
|
"#{Webpacker.config.source_path}/app.vue"
|
25
34
|
|
26
35
|
say "Installing all Vue dependencies"
|
27
|
-
run "yarn add vue vue-loader@
|
36
|
+
run "yarn add vue vue-loader@next vue-template-compiler"
|
28
37
|
|
29
38
|
if Rails::VERSION::MAJOR == 5 && Rails::VERSION::MINOR > 1
|
30
39
|
say "You need to enable unsafe-eval rule.", :yellow
|
31
40
|
say "This can be done in Rails 5.2+ for development environment in the CSP initializer", :yellow
|
32
41
|
say "config/initializers/content_security_policy.rb with a snippet like this:", :yellow
|
33
42
|
say "if Rails.env.development?", :yellow
|
34
|
-
say "
|
43
|
+
say " p.script_src :self, :https, :unsafe_eval", :yellow
|
35
44
|
say "else", :yellow
|
36
|
-
say "
|
45
|
+
say " p.script_src :self, :https", :yellow
|
37
46
|
say "end", :yellow
|
38
47
|
end
|
39
48
|
|
data/lib/tasks/webpacker.rake
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
tasks = {
|
2
|
-
"webpacker:info" => "Provides information on Webpacker's environment",
|
3
2
|
"webpacker:install" => "Installs and setup webpack with Yarn",
|
4
3
|
"webpacker:compile" => "Compiles webpack bundles based on environment",
|
5
4
|
"webpacker:clobber" => "Removes the webpack compiled output directory",
|
@@ -1,6 +1,6 @@
|
|
1
1
|
namespace :webpacker do
|
2
2
|
desc "Support for older Rails versions. Install all JavaScript dependencies as specified via Yarn"
|
3
3
|
task :yarn_install do
|
4
|
-
system "yarn install --no-progress --production"
|
4
|
+
system "yarn install --no-progress --frozen-lockfile --production"
|
5
5
|
end
|
6
6
|
end
|
data/lib/webpacker.rb
CHANGED
data/lib/webpacker/compiler.rb
CHANGED
@@ -44,8 +44,7 @@ class Webpacker::Compiler
|
|
44
44
|
|
45
45
|
def watched_files_digest
|
46
46
|
files = Dir[*default_watched_paths, *watched_paths].reject { |f| File.directory?(f) }
|
47
|
-
|
48
|
-
Digest::SHA1.hexdigest(file_ids.join("/"))
|
47
|
+
Digest::SHA1.hexdigest(files.map { |f| "#{File.basename(f)}/#{File.mtime(f).utc.to_i}" }.join("/"))
|
49
48
|
end
|
50
49
|
|
51
50
|
def record_compilation_digest
|
@@ -60,11 +59,10 @@ class Webpacker::Compiler
|
|
60
59
|
def run_webpack
|
61
60
|
logger.info "Compiling…"
|
62
61
|
|
63
|
-
|
62
|
+
sterr, stdout, status = Open3.capture3(webpack_env, "#{RbConfig.ruby} ./bin/webpack")
|
64
63
|
|
65
64
|
if status.success?
|
66
65
|
logger.info "Compiled all packs in #{config.public_output_path}"
|
67
|
-
logger.info stdout if config.webpack_compile_output?
|
68
66
|
else
|
69
67
|
logger.error "Compilation failed:\n#{sterr}\n#{stdout}"
|
70
68
|
end
|
@@ -1,14 +1,8 @@
|
|
1
|
-
require "yaml"
|
2
|
-
require "active_support/core_ext/hash/keys"
|
3
|
-
require "active_support/core_ext/hash/indifferent_access"
|
4
|
-
|
5
1
|
class Webpacker::Configuration
|
6
|
-
|
2
|
+
delegate :root_path, :config_path, :env, to: :@webpacker
|
7
3
|
|
8
|
-
def initialize(
|
9
|
-
@
|
10
|
-
@config_path = config_path
|
11
|
-
@env = env
|
4
|
+
def initialize(webpacker)
|
5
|
+
@webpacker = webpacker
|
12
6
|
end
|
13
7
|
|
14
8
|
def refresh
|
@@ -63,10 +57,6 @@ class Webpacker::Configuration
|
|
63
57
|
fetch(:extensions)
|
64
58
|
end
|
65
59
|
|
66
|
-
def webpack_compile_output?
|
67
|
-
fetch(:webpack_compile_output)
|
68
|
-
end
|
69
|
-
|
70
60
|
private
|
71
61
|
def fetch(key)
|
72
62
|
data.fetch(key, defaults[key])
|
data/lib/webpacker/dev_server.rb
CHANGED
@@ -3,10 +3,10 @@ class Webpacker::DevServer
|
|
3
3
|
# Webpacker.dev_server.connect_timeout = 1
|
4
4
|
cattr_accessor(:connect_timeout) { 0.01 }
|
5
5
|
|
6
|
-
|
6
|
+
delegate :config, to: :@webpacker
|
7
7
|
|
8
|
-
def initialize(
|
9
|
-
@
|
8
|
+
def initialize(webpacker)
|
9
|
+
@webpacker = webpacker
|
10
10
|
end
|
11
11
|
|
12
12
|
def running?
|
@@ -54,16 +54,12 @@ class Webpacker::DevServer
|
|
54
54
|
"#{host}:#{port}"
|
55
55
|
end
|
56
56
|
|
57
|
-
def pretty?
|
58
|
-
fetch(:pretty)
|
59
|
-
end
|
60
|
-
|
61
57
|
private
|
62
58
|
def fetch(key)
|
63
59
|
ENV["WEBPACKER_DEV_SERVER_#{key.upcase}"] || config.dev_server.fetch(key, defaults[key])
|
64
60
|
end
|
65
61
|
|
66
62
|
def defaults
|
67
|
-
config.send(:defaults)[:dev_server]
|
63
|
+
config.send(:defaults)[:dev_server]
|
68
64
|
end
|
69
65
|
end
|
@@ -11,10 +11,6 @@ class Webpacker::DevServerProxy < Rack::Proxy
|
|
11
11
|
def perform_request(env)
|
12
12
|
if env["PATH_INFO"].start_with?("/#{public_output_uri_path}") && Webpacker.dev_server.running?
|
13
13
|
env["HTTP_HOST"] = env["HTTP_X_FORWARDED_HOST"] = env["HTTP_X_FORWARDED_SERVER"] = Webpacker.dev_server.host_with_port
|
14
|
-
env["HTTP_X_FORWARDED_PROTO"] = env["HTTP_X_FORWARDED_SCHEME"] = Webpacker.dev_server.protocol
|
15
|
-
unless Webpacker.dev_server.https?
|
16
|
-
env["HTTPS"] = env["HTTP_X_FORWARDED_SSL"] = "off"
|
17
|
-
end
|
18
14
|
env["SCRIPT_NAME"] = ""
|
19
15
|
|
20
16
|
super(env)
|
@@ -1,7 +1,6 @@
|
|
1
1
|
require "shellwords"
|
2
|
+
require "yaml"
|
2
3
|
require "socket"
|
3
|
-
require "webpacker/configuration"
|
4
|
-
require "webpacker/dev_server"
|
5
4
|
require "webpacker/runner"
|
6
5
|
|
7
6
|
module Webpacker
|
@@ -14,22 +13,15 @@ module Webpacker
|
|
14
13
|
|
15
14
|
private
|
16
15
|
def load_config
|
17
|
-
|
16
|
+
@config_file = File.join(@app_path, "config/webpacker.yml")
|
17
|
+
dev_server = YAML.load_file(@config_file)[ENV["RAILS_ENV"]]["dev_server"]
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
env: ENV["RAILS_ENV"]
|
23
|
-
)
|
24
|
-
|
25
|
-
dev_server = DevServer.new(config)
|
26
|
-
|
27
|
-
@hostname = dev_server.host
|
28
|
-
@port = dev_server.port
|
29
|
-
@pretty = dev_server.pretty?
|
19
|
+
@hostname = dev_server["host"]
|
20
|
+
@port = dev_server["port"]
|
21
|
+
@pretty = dev_server.fetch("pretty", true)
|
30
22
|
|
31
23
|
rescue Errno::ENOENT, NoMethodError
|
32
|
-
$stdout.puts "webpack dev_server configuration not found in #{
|
24
|
+
$stdout.puts "webpack dev_server configuration not found in #{@config_file}[#{ENV["RAILS_ENV"]}]."
|
33
25
|
$stdout.puts "Please run bundle exec rails webpacker:install to install Webpacker"
|
34
26
|
exit!
|
35
27
|
end
|
data/lib/webpacker/env.rb
CHANGED
data/lib/webpacker/helper.rb
CHANGED
@@ -33,16 +33,6 @@ module Webpacker::Helper
|
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
36
|
-
# Creates a image tag that references the named pack file.
|
37
|
-
#
|
38
|
-
# Example:
|
39
|
-
#
|
40
|
-
# <%= image_pack_tag 'application.png', size: '16x10', alt: 'Edit Entry' %>
|
41
|
-
# <img alt='Edit Entry' src='/packs/application-k344a6d59eef8632c9d1.png' width='16' height='10' />
|
42
|
-
def image_pack_tag(name, **options)
|
43
|
-
image_tag(asset_path(Webpacker.manifest.lookup!(name)), **options)
|
44
|
-
end
|
45
|
-
|
46
36
|
# Creates a script tag that references the named pack file, as compiled by webpack per the entries list
|
47
37
|
# in config/webpack/shared.js. By default, this list is auto-generated to match everything in
|
48
38
|
# app/javascript/packs/*.js. In production mode, the digested reference is automatically looked up.
|
data/lib/webpacker/instance.rb
CHANGED
@@ -12,11 +12,7 @@ class Webpacker::Instance
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def config
|
15
|
-
@config ||= Webpacker::Configuration.new
|
16
|
-
root_path: root_path,
|
17
|
-
config_path: config_path,
|
18
|
-
env: env
|
19
|
-
)
|
15
|
+
@config ||= Webpacker::Configuration.new self
|
20
16
|
end
|
21
17
|
|
22
18
|
def compiler
|
@@ -24,7 +20,7 @@ class Webpacker::Instance
|
|
24
20
|
end
|
25
21
|
|
26
22
|
def dev_server
|
27
|
-
@dev_server ||= Webpacker::DevServer.new
|
23
|
+
@dev_server ||= Webpacker::DevServer.new self
|
28
24
|
end
|
29
25
|
|
30
26
|
def manifest
|
data/lib/webpacker/railtie.rb
CHANGED
@@ -46,8 +46,7 @@ class Webpacker::Engine < ::Rails::Engine
|
|
46
46
|
end
|
47
47
|
|
48
48
|
initializer "webpacker.proxy" do |app|
|
49
|
-
|
50
|
-
if insert_middleware
|
49
|
+
if Rails.env.development?
|
51
50
|
app.middleware.insert_before 0,
|
52
51
|
Rails::VERSION::MAJOR >= 5 ?
|
53
52
|
Webpacker::DevServerProxy : "Webpacker::DevServerProxy", ssl_verify_none: true
|
data/lib/webpacker/version.rb
CHANGED
data/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@rails/webpacker",
|
3
|
-
"version": "
|
3
|
+
"version": "4.0.0-pre.1",
|
4
4
|
"description": "Use webpack to manage app-like JavaScript modules in Rails",
|
5
5
|
"main": "package/index.js",
|
6
6
|
"files": [
|
@@ -12,39 +12,39 @@
|
|
12
12
|
"yarn": ">=0.25.2"
|
13
13
|
},
|
14
14
|
"dependencies": {
|
15
|
-
"babel-core": "^6.26.
|
16
|
-
"babel-loader": "^7.1.
|
15
|
+
"babel-core": "^6.26.0",
|
16
|
+
"babel-loader": "^7.1.3",
|
17
17
|
"babel-plugin-syntax-dynamic-import": "^6.18.0",
|
18
18
|
"babel-plugin-transform-class-properties": "^6.24.1",
|
19
19
|
"babel-plugin-transform-object-rest-spread": "^6.26.0",
|
20
20
|
"babel-polyfill": "^6.26.0",
|
21
|
-
"babel-preset-env": "^1.
|
21
|
+
"babel-preset-env": "^1.6.1",
|
22
22
|
"case-sensitive-paths-webpack-plugin": "^2.1.2",
|
23
23
|
"compression-webpack-plugin": "^1.1.11",
|
24
24
|
"css-loader": "^0.28.11",
|
25
|
-
"extract-text-webpack-plugin": "^3.0.2",
|
26
25
|
"file-loader": "^1.1.11",
|
27
26
|
"glob": "^7.1.2",
|
28
|
-
"js-yaml": "^3.
|
29
|
-
"
|
30
|
-
"
|
27
|
+
"js-yaml": "^3.11.0",
|
28
|
+
"mini-css-extract-plugin": "^0.4.0",
|
29
|
+
"node-sass": "^4.8.3",
|
31
30
|
"path-complete-extname": "^1.0.0",
|
32
31
|
"postcss-cssnext": "^3.1.0",
|
33
32
|
"postcss-import": "^11.1.0",
|
34
|
-
"postcss-loader": "^2.1.
|
33
|
+
"postcss-loader": "^2.1.3",
|
35
34
|
"sass-loader": "^6.0.7",
|
36
|
-
"style-loader": "^0.
|
37
|
-
"uglifyjs-webpack-plugin": "^1.2.
|
38
|
-
"webpack": "^
|
39
|
-
"webpack-manifest
|
35
|
+
"style-loader": "^0.20.3",
|
36
|
+
"uglifyjs-webpack-plugin": "^1.2.4",
|
37
|
+
"webpack": "^4.4.1",
|
38
|
+
"webpack-assets-manifest": "^3.0.1",
|
39
|
+
"webpack-cli": "^2.0.13"
|
40
40
|
},
|
41
41
|
"devDependencies": {
|
42
|
-
"eslint": "^4.
|
42
|
+
"eslint": "^4.18.2",
|
43
43
|
"eslint-config-airbnb": "^16.1.0",
|
44
|
-
"eslint-plugin-import": "^2.
|
44
|
+
"eslint-plugin-import": "^2.9.0",
|
45
45
|
"eslint-plugin-jsx-a11y": "^6.0.3",
|
46
46
|
"eslint-plugin-react": "^7.7.0",
|
47
|
-
"jest": "^
|
47
|
+
"jest": "^22.4.2"
|
48
48
|
},
|
49
49
|
"jest": {
|
50
50
|
"testRegex": "(/__tests__/.*|(\\.|/))\\.jsx?$",
|