webpacker 3.6.0 → 4.0.0.pre.pre.1
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/.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?$",
|