Skip to content

Commit efc1748

Browse files
upgrade webpacker
1 parent a57ad7b commit efc1748

23 files changed

+6617
-4622
lines changed

.babelrc

-39
This file was deleted.

.browserslistrc

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
defaults

.gitignore

+7
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,10 @@ tags
3737

3838
# Ignore master key for decrypting credentials and more.
3939
/config/master.key
40+
41+
/public/packs
42+
/public/packs-test
43+
/node_modules
44+
/yarn-error.log
45+
yarn-debug.log*
46+
.yarn-integrity

.node-version

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
10.6.0
1+
16.19.1

Gemfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ gem 'pg'
1313
gem 'puma'
1414
gem 'sassc-rails'
1515
gem 'uglifier'
16-
gem 'webpacker', '~> 3.5.5'
16+
gem 'webpacker'
1717
# gem 'mini_racer'
1818
gem 'jbuilder'
1919
# gem 'capistrano-rails', group: :development

Gemfile.lock

+6-4
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,7 @@ GEM
359359
rexml (~> 3.2, >= 3.2.5)
360360
rubyzip (>= 1.2.2, < 3.0)
361361
websocket (~> 1.0)
362+
semantic_range (3.0.0)
362363
slack-notifier (2.4.0)
363364
slim (5.1.0)
364365
temple (~> 0.10.0)
@@ -405,10 +406,11 @@ GEM
405406
activemodel (>= 6.0.0)
406407
bindex (>= 0.4.0)
407408
railties (>= 6.0.0)
408-
webpacker (3.5.5)
409-
activesupport (>= 4.2)
409+
webpacker (5.4.4)
410+
activesupport (>= 5.2)
410411
rack-proxy (>= 0.6.1)
411-
railties (>= 4.2)
412+
railties (>= 5.2)
413+
semantic_range (>= 2.3.0)
412414
websocket (1.2.9)
413415
websocket-driver (0.7.5)
414416
websocket-extensions (>= 0.1.0)
@@ -475,7 +477,7 @@ DEPENDENCIES
475477
uglifier
476478
unicorn
477479
web-console (>= 3.3.0)
478-
webpacker (~> 3.5.5)
480+
webpacker
479481
whenever
480482

481483
RUBY VERSION

app/frontend/components/index.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import React, { Component } from "react"
2-
import { Router } from "react-router-dom"
3-
import createHistory from "history/createBrowserHistory"
4-
import ReactGA from "react-ga"
1+
import React, { Component } from "react"
2+
import { Router } from "react-router-dom"
3+
import { createBrowserHistory } from "history"
4+
import ReactGA from "react-ga"
55

66
import Routes from "./Routes"
77
import { window } from "../utils/browser-dependencies"
@@ -10,7 +10,7 @@ export default class Rechord extends Component {
1010
constructor() {
1111
super()
1212
const { uaId } = window.data
13-
const history = createHistory()
13+
const history = createBrowserHistory()
1414
history.pushPageView = () => {}
1515

1616
if (uaId.length > 0) {

app/frontend/packs/rechord.js

+8-5
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
import "babel-polyfill" // for GoogleBot (Chrome 41)
22

3-
import React from "react"
4-
import ReactDOM from "react-dom"
5-
import Root from "../components"
6-
import { document } from "../utils/browser-dependencies"
3+
import React from "react"
4+
import { createRoot } from "react-dom/client"
5+
import Root from "../components"
6+
import { document } from "../utils/browser-dependencies"
77
import "../styles/rechord.sass"
88

99
const renderComponent = (id, component) => () => {
1010
const element = document.getElementById(id)
11-
if (element) ReactDOM.render(component, element)
11+
if (element) {
12+
const root = createRoot(element)
13+
root.render(component)
14+
}
1215
}
1316
const setReact = (id, component) => (
1417
document.addEventListener("DOMContentLoaded", renderComponent(id, component))

app/frontend/styles/partials/score-controls.sass

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
.key-control, .undo-control
4747
> div
4848
flex-grow: 1
49-
.instrument-control
49+
//.instrument-control
5050
.beat-control
5151
.select, select
5252
width: 100%

app/javascript/packs/rails_admin.js

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
import "rails_admin/src/rails_admin/base";
2+
import "../stylesheets/rails_admin.scss";
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
@import "rails_admin/src/rails_admin/styles/base";

babel.config.js

+99
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
module.exports = function(api) {
2+
var validEnv = ['development', 'test', 'production']
3+
var currentEnv = api.env()
4+
var isDevelopmentEnv = api.env('development')
5+
var isProductionEnv = api.env('production')
6+
var isTestEnv = api.env('test')
7+
8+
if (!validEnv.includes(currentEnv)) {
9+
throw new Error(
10+
'Please specify a valid `NODE_ENV` or ' +
11+
'`BABEL_ENV` environment variables. Valid values are "development", ' +
12+
'"test", and "production". Instead, received: ' +
13+
JSON.stringify(currentEnv) +
14+
'.'
15+
)
16+
}
17+
18+
return {
19+
presets: [
20+
isTestEnv && [
21+
'@babel/preset-env',
22+
{
23+
targets: {
24+
node: 'current'
25+
},
26+
modules: 'commonjs'
27+
},
28+
'@babel/preset-react'
29+
],
30+
(isProductionEnv || isDevelopmentEnv) && [
31+
'@babel/preset-env',
32+
{
33+
forceAllTransforms: true,
34+
useBuiltIns: 'entry',
35+
corejs: 3,
36+
modules: false,
37+
exclude: ['transform-typeof-symbol']
38+
}
39+
],
40+
[
41+
'@babel/preset-react',
42+
{
43+
development: isDevelopmentEnv || isTestEnv,
44+
useBuiltIns: true
45+
}
46+
]
47+
].filter(Boolean),
48+
plugins: [
49+
'babel-plugin-macros',
50+
'@babel/plugin-syntax-dynamic-import',
51+
isTestEnv && 'babel-plugin-dynamic-import-node',
52+
'@babel/plugin-transform-destructuring',
53+
[
54+
'@babel/plugin-proposal-class-properties',
55+
{
56+
loose: true
57+
}
58+
],
59+
[
60+
'@babel/plugin-proposal-object-rest-spread',
61+
{
62+
useBuiltIns: true
63+
}
64+
],
65+
[
66+
'@babel/plugin-proposal-private-methods',
67+
{
68+
loose: true
69+
}
70+
],
71+
[
72+
'@babel/plugin-proposal-private-property-in-object',
73+
{
74+
loose: true
75+
}
76+
],
77+
[
78+
'@babel/plugin-transform-runtime',
79+
{
80+
helpers: false,
81+
regenerator: true,
82+
corejs: false
83+
}
84+
],
85+
[
86+
'@babel/plugin-transform-regenerator',
87+
{
88+
async: false
89+
}
90+
],
91+
isProductionEnv && [
92+
'babel-plugin-transform-react-remove-prop-types',
93+
{
94+
removeImport: true
95+
}
96+
]
97+
].filter(Boolean)
98+
}
99+
}

bin/webpack

+5-2
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,12 @@ require "pathname"
77
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
88
Pathname.new(__FILE__).realpath)
99

10-
require "rubygems"
1110
require "bundler/setup"
1211

1312
require "webpacker"
1413
require "webpacker/webpack_runner"
15-
Webpacker::WebpackRunner.run(ARGV)
14+
15+
APP_ROOT = File.expand_path("..", __dir__)
16+
Dir.chdir(APP_ROOT) do
17+
Webpacker::WebpackRunner.run(ARGV)
18+
end

bin/webpack-dev-server

+5-2
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,12 @@ require "pathname"
77
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
88
Pathname.new(__FILE__).realpath)
99

10-
require "rubygems"
1110
require "bundler/setup"
1211

1312
require "webpacker"
1413
require "webpacker/dev_server_runner"
15-
Webpacker::DevServerRunner.run(ARGV)
14+
15+
APP_ROOT = File.expand_path("..", __dir__)
16+
Dir.chdir(APP_ROOT) do
17+
Webpacker::DevServerRunner.run(ARGV)
18+
end

config/initializers/rails_admin.rb

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ class Time
1414
end
1515

1616
RailsAdmin.config do |config|
17+
config.asset_source = :webpacker
1718
# for Rails 5.2.0
1819
config.excluded_models = ["ActiveStorage::Blob", "ActiveStorage::Attachment"]
1920

config/webpack/development.js

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
process.env.NODE_ENV = process.env.NODE_ENV || 'development'
2+
13
const environment = require('./environment')
24

35
module.exports = environment.toWebpackConfig()

config/webpack/environment.js

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
const { environment } = require('@rails/webpacker')
22

3-
environment.devtool = 'eval'
43
module.exports = environment

config/webpack/production.js

+2-19
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,5 @@
1-
const environment = require('./environment')
2-
const webpack = require('webpack')
1+
process.env.NODE_ENV = process.env.NODE_ENV || 'production'
32

4-
environment.plugins.append(
5-
"UglifyJs",
6-
new webpack.optimize.UglifyJsPlugin({
7-
parallel: true,
8-
sourceMap: false,
9-
mangle: false,
10-
uglifyOptions: {
11-
mangle: false
12-
},
13-
compress: {
14-
warnings: false
15-
},
16-
output: {
17-
comments: false
18-
}
19-
})
20-
)
3+
const environment = require('./environment')
214

225
module.exports = environment.toWebpackConfig()

config/webpack/test.js

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
process.env.NODE_ENV = process.env.NODE_ENV || 'development'
2+
13
const environment = require('./environment')
24

35
module.exports = environment.toWebpackConfig()

0 commit comments

Comments
 (0)