opal-webpack-loader 0.11.2 → 0.13.0
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/README.md +212 -216
- data/bin/opal-webpack-compile-server +0 -1
- data/bin/opal-webpack-windows-compile-server +7 -4
- data/bin/owl-compiler +7 -4
- data/lib/opal-webpack-loader/installer_cli.rb +415 -415
- data/lib/opal-webpack-loader/templates/application.css.erb +4 -4
- data/lib/opal-webpack-loader/templates/debug.js.erb +149 -150
- data/lib/opal-webpack-loader/templates/development.js.erb +134 -135
- data/lib/opal-webpack-loader/templates/opal_loader.rb.erb +7 -9
- data/lib/opal-webpack-loader/templates/opal_web_worker_loader.rb.erb +7 -9
- data/lib/opal-webpack-loader/templates/package.json.erb +25 -26
- data/lib/opal-webpack-loader/templates/production.js.erb +97 -99
- data/lib/opal-webpack-loader/version.rb +1 -1
- metadata +20 -34
@@ -1,4 +1,4 @@
|
|
1
|
-
/* application stylesheets */
|
2
|
-
body {
|
3
|
-
color: black;
|
4
|
-
}
|
1
|
+
/* application stylesheets */
|
2
|
+
body {
|
3
|
+
color: black;
|
4
|
+
}
|
@@ -1,150 +1,149 @@
|
|
1
|
-
const path = require('path');
|
2
|
-
const webpack = require('webpack');
|
3
|
-
const OwlResolver = require('opal-webpack-loader/resolver'); // to resolve ruby files
|
4
|
-
const ExtraWatchWebpackPlugin = require('extra-watch-webpack-plugin'); // to watch for added ruby files
|
5
|
-
|
6
|
-
const common_config = {
|
7
|
-
context: path.resolve(__dirname, '<%= opal_directory %>'),
|
8
|
-
mode: "development",
|
9
|
-
optimization: {
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
// devtool: '
|
22
|
-
// devtool: 'inline-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
'
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
new webpack.HotModuleReplacementPlugin(),
|
43
|
-
// watch for added files in opal dir
|
44
|
-
new ExtraWatchWebpackPlugin({ dirs: [ path.resolve(__dirname, '<%= opal_directory %>') ] })
|
45
|
-
],
|
46
|
-
module: {
|
47
|
-
rules: [
|
48
|
-
{
|
49
|
-
// loader for .scss files
|
50
|
-
// test means "test for for file endings"
|
51
|
-
test: /\.s[ac]ss$/,
|
52
|
-
use: [
|
53
|
-
{ loader: "style-loader" },
|
54
|
-
{
|
55
|
-
loader: "css-loader",
|
56
|
-
options: { sourceMap: true }
|
57
|
-
},
|
58
|
-
{
|
59
|
-
loader: "sass-loader",
|
60
|
-
options: {
|
61
|
-
sassOptions: { includePaths: [path.resolve(__dirname, '<%= stylesheets_directory %>')] },
|
62
|
-
sourceMap: true // set to false to speed up hot reloads
|
63
|
-
}
|
64
|
-
}
|
65
|
-
]
|
66
|
-
},
|
67
|
-
{
|
68
|
-
// loader for .css files
|
69
|
-
test: /\.css$/,
|
70
|
-
use: [
|
71
|
-
{ loader: "style-loader" },
|
72
|
-
{
|
73
|
-
loader: "css-loader",
|
74
|
-
options: { sourceMap: true }
|
75
|
-
}
|
76
|
-
]
|
77
|
-
},
|
78
|
-
{
|
79
|
-
test: /\.(png|svg|jpg|gif|woff|woff2|eot|ttf|otf)$/,
|
80
|
-
use: [ "file-loader" ]
|
81
|
-
},
|
82
|
-
{
|
83
|
-
// opal-webpack-loader will compile and include ruby files in the pack
|
84
|
-
test: /(\.js)?\.rb$/,
|
85
|
-
use: [
|
86
|
-
{
|
87
|
-
loader: 'opal-webpack-loader',
|
88
|
-
options: {
|
89
|
-
sourceMap: true,
|
90
|
-
hmr: true,
|
91
|
-
hmrHook: '<%= hmr_hook %>'
|
92
|
-
}
|
93
|
-
}
|
94
|
-
]
|
95
|
-
}
|
96
|
-
]
|
97
|
-
},
|
98
|
-
// configuration for webpack-dev-server
|
99
|
-
devServer: {
|
100
|
-
<%= dev_server_before %>
|
101
|
-
open: false,
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
},
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
const
|
147
|
-
const
|
148
|
-
|
149
|
-
|
150
|
-
module.exports = [ <%= default_targets %> ];
|
1
|
+
const path = require('path');
|
2
|
+
const webpack = require('webpack');
|
3
|
+
const OwlResolver = require('opal-webpack-loader/resolver'); // to resolve ruby files
|
4
|
+
const ExtraWatchWebpackPlugin = require('extra-watch-webpack-plugin'); // to watch for added ruby files
|
5
|
+
|
6
|
+
const common_config = {
|
7
|
+
context: path.resolve(__dirname, '<%= opal_directory %>'),
|
8
|
+
mode: "development",
|
9
|
+
optimization: {
|
10
|
+
moduleIds: 'named',
|
11
|
+
removeAvailableModules: false,
|
12
|
+
removeEmptyChunks: false,
|
13
|
+
minimize: false // dont minimize for debugging
|
14
|
+
},
|
15
|
+
performance: {
|
16
|
+
maxAssetSize: 20000000,
|
17
|
+
maxEntrypointSize: 20000000
|
18
|
+
},
|
19
|
+
// use one of these below for source maps
|
20
|
+
devtool: 'source-map', // this works well, good compromise between accuracy and performance
|
21
|
+
// devtool: 'cheap-eval-source-map', // less accurate
|
22
|
+
// devtool: 'inline-source-map', // slowest
|
23
|
+
// devtool: 'inline-cheap-source-map',
|
24
|
+
output: {
|
25
|
+
// webpack-dev-server keeps the output in memory
|
26
|
+
filename: '[name].js',
|
27
|
+
path: path.resolve(__dirname, '<%= asset_output_directory %>'),
|
28
|
+
publicPath: 'http://localhost:3035/assets/'
|
29
|
+
},
|
30
|
+
resolve: {
|
31
|
+
plugins: [
|
32
|
+
// this makes it possible for webpack to find ruby files
|
33
|
+
new OwlResolver('resolve', 'resolved')
|
34
|
+
],
|
35
|
+
alias: {
|
36
|
+
'react-dom': 'react-dom/profiling',
|
37
|
+
'schedule/tracing': 'schedule/tracing-profiling',
|
38
|
+
}
|
39
|
+
},
|
40
|
+
plugins: [
|
41
|
+
// for hot reloading
|
42
|
+
new webpack.HotModuleReplacementPlugin(),
|
43
|
+
// watch for added files in opal dir
|
44
|
+
new ExtraWatchWebpackPlugin({ dirs: [ path.resolve(__dirname, '<%= opal_directory %>') ] })
|
45
|
+
],
|
46
|
+
module: {
|
47
|
+
rules: [
|
48
|
+
{
|
49
|
+
// loader for .scss files
|
50
|
+
// test means "test for for file endings"
|
51
|
+
test: /\.s[ac]ss$/,
|
52
|
+
use: [
|
53
|
+
{ loader: "style-loader" },
|
54
|
+
{
|
55
|
+
loader: "css-loader",
|
56
|
+
options: { sourceMap: true }
|
57
|
+
},
|
58
|
+
{
|
59
|
+
loader: "sass-loader",
|
60
|
+
options: {
|
61
|
+
sassOptions: { includePaths: [path.resolve(__dirname, '<%= stylesheets_directory %>')] },
|
62
|
+
sourceMap: true // set to false to speed up hot reloads
|
63
|
+
}
|
64
|
+
}
|
65
|
+
]
|
66
|
+
},
|
67
|
+
{
|
68
|
+
// loader for .css files
|
69
|
+
test: /\.css$/,
|
70
|
+
use: [
|
71
|
+
{ loader: "style-loader" },
|
72
|
+
{
|
73
|
+
loader: "css-loader",
|
74
|
+
options: { sourceMap: true }
|
75
|
+
}
|
76
|
+
]
|
77
|
+
},
|
78
|
+
{
|
79
|
+
test: /\.(png|svg|jpg|gif|woff|woff2|eot|ttf|otf)$/,
|
80
|
+
use: [ "file-loader" ]
|
81
|
+
},
|
82
|
+
{
|
83
|
+
// opal-webpack-loader will compile and include ruby files in the pack
|
84
|
+
test: /(\.js)?\.rb$/,
|
85
|
+
use: [
|
86
|
+
{
|
87
|
+
loader: 'opal-webpack-loader',
|
88
|
+
options: {
|
89
|
+
sourceMap: true,
|
90
|
+
hmr: true,
|
91
|
+
hmrHook: '<%= hmr_hook %>'
|
92
|
+
}
|
93
|
+
}
|
94
|
+
]
|
95
|
+
}
|
96
|
+
]
|
97
|
+
},
|
98
|
+
// configuration for webpack-dev-server
|
99
|
+
devServer: {
|
100
|
+
<%= dev_server_before %>
|
101
|
+
open: false,
|
102
|
+
port: 3035,
|
103
|
+
hot: true,
|
104
|
+
https: false,
|
105
|
+
allowedHosts: 'all',
|
106
|
+
headers: {
|
107
|
+
"Access-Control-Allow-Origin": "*",
|
108
|
+
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, PATCH, OPTIONS",
|
109
|
+
"Access-Control-Allow-Headers": "X-Requested-With, content-type, Authorization"
|
110
|
+
},
|
111
|
+
static: {
|
112
|
+
directory: path.resolve(__dirname, 'public'),
|
113
|
+
watch: {
|
114
|
+
// in case of problems with hot reloading uncomment the following two lines:
|
115
|
+
// aggregateTimeout: 250,
|
116
|
+
// poll: 50,
|
117
|
+
ignored: /\bnode_modules\b/
|
118
|
+
}
|
119
|
+
},
|
120
|
+
host: 'localhost'
|
121
|
+
}
|
122
|
+
};
|
123
|
+
|
124
|
+
const browser_config = {
|
125
|
+
target: 'web',
|
126
|
+
entry: {
|
127
|
+
application: [path.resolve(__dirname, '<%= js_entry %>')]
|
128
|
+
}
|
129
|
+
};
|
130
|
+
|
131
|
+
const ssr_config = {
|
132
|
+
target: 'node',
|
133
|
+
entry: {
|
134
|
+
application_ssr: [path.resolve(__dirname, '<%= js_ssr_entry %>')]
|
135
|
+
}
|
136
|
+
};
|
137
|
+
|
138
|
+
const web_worker_config = {
|
139
|
+
target: 'webworker',
|
140
|
+
entry: {
|
141
|
+
web_worker: [path.resolve(__dirname, '<%= js_web_worker_entry %>')]
|
142
|
+
}
|
143
|
+
};
|
144
|
+
|
145
|
+
const browser = Object.assign({}, common_config, browser_config);
|
146
|
+
const ssr = Object.assign({}, common_config, ssr_config);
|
147
|
+
const web_worker = Object.assign({}, common_config, web_worker_config);
|
148
|
+
|
149
|
+
module.exports = [ <%= default_targets %> ];
|
@@ -1,135 +1,134 @@
|
|
1
|
-
const path = require('path');
|
2
|
-
const webpack = require('webpack');
|
3
|
-
const OwlResolver = require('opal-webpack-loader/resolver'); // to resolve ruby files
|
4
|
-
const ExtraWatchWebpackPlugin = require('extra-watch-webpack-plugin'); // to watch for added ruby files
|
5
|
-
|
6
|
-
const common_config = {
|
7
|
-
context: path.resolve(__dirname, '<%= opal_directory %>'),
|
8
|
-
mode: "development",
|
9
|
-
optimization: {
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
new webpack.HotModuleReplacementPlugin(),
|
34
|
-
// watch for added files in opal dir
|
35
|
-
new ExtraWatchWebpackPlugin({ dirs: [ path.resolve(__dirname, '<%= opal_directory %>') ] })
|
36
|
-
],
|
37
|
-
module: {
|
38
|
-
rules: [
|
39
|
-
{
|
40
|
-
// loader for .scss files
|
41
|
-
// test means "test for for file endings"
|
42
|
-
test: /\.s[ac]ss$/,
|
43
|
-
use: [
|
44
|
-
{ loader: "style-loader" },
|
45
|
-
{ loader: "css-loader" },
|
46
|
-
{
|
47
|
-
loader: "sass-loader",
|
48
|
-
options: {
|
49
|
-
sassOptions: { includePaths: [path.resolve(__dirname, '<%= stylesheets_directory %>')] },
|
50
|
-
sourceMap: false
|
51
|
-
}
|
52
|
-
}
|
53
|
-
]
|
54
|
-
},
|
55
|
-
{
|
56
|
-
// loader for .css files
|
57
|
-
test: /\.css$/,
|
58
|
-
use: [
|
59
|
-
{ loader: "style-loader" },
|
60
|
-
{ loader: "css-loader" }
|
61
|
-
]
|
62
|
-
},
|
63
|
-
{
|
64
|
-
test: /\.(png|svg|jpg|gif|woff|woff2|eot|ttf|otf)$/,
|
65
|
-
use: [ "file-loader" ]
|
66
|
-
},
|
67
|
-
{
|
68
|
-
// opal-webpack-loader will compile and include ruby files in the pack
|
69
|
-
test: /(\.js)?\.rb$/,
|
70
|
-
use: [
|
71
|
-
{
|
72
|
-
loader: 'opal-webpack-loader',
|
73
|
-
options: {
|
74
|
-
sourceMap: false,
|
75
|
-
hmr: true,
|
76
|
-
hmrHook: '<%= hmr_hook %>'
|
77
|
-
}
|
78
|
-
}
|
79
|
-
]
|
80
|
-
}
|
81
|
-
]
|
82
|
-
},
|
83
|
-
// configuration for webpack-dev-server
|
84
|
-
devServer: {
|
85
|
-
<%= dev_server_before %>
|
86
|
-
open: false,
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
},
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
const
|
132
|
-
const
|
133
|
-
|
134
|
-
|
135
|
-
module.exports = [ <%= default_targets %> ];
|
1
|
+
const path = require('path');
|
2
|
+
const webpack = require('webpack');
|
3
|
+
const OwlResolver = require('opal-webpack-loader/resolver'); // to resolve ruby files
|
4
|
+
const ExtraWatchWebpackPlugin = require('extra-watch-webpack-plugin'); // to watch for added ruby files
|
5
|
+
|
6
|
+
const common_config = {
|
7
|
+
context: path.resolve(__dirname, '<%= opal_directory %>'),
|
8
|
+
mode: "development",
|
9
|
+
optimization: {
|
10
|
+
moduleIds: 'named',
|
11
|
+
removeAvailableModules: false,
|
12
|
+
removeEmptyChunks: false,
|
13
|
+
minimize: false // dont minimize in development, to speed up hot reloads
|
14
|
+
},
|
15
|
+
performance: {
|
16
|
+
maxAssetSize: 20000000,
|
17
|
+
maxEntrypointSize: 20000000
|
18
|
+
},
|
19
|
+
output: {
|
20
|
+
// webpack-dev-server keeps the output in memory
|
21
|
+
filename: '[name].js',
|
22
|
+
path: path.resolve(__dirname, '<%= asset_output_directory %>'),
|
23
|
+
publicPath: 'http://localhost:3035/assets/'
|
24
|
+
},
|
25
|
+
resolve: {
|
26
|
+
plugins: [
|
27
|
+
// this makes it possible for webpack to find ruby files
|
28
|
+
new OwlResolver('resolve', 'resolved')
|
29
|
+
]
|
30
|
+
},
|
31
|
+
plugins: [
|
32
|
+
// for hot reloading
|
33
|
+
new webpack.HotModuleReplacementPlugin(),
|
34
|
+
// watch for added files in opal dir
|
35
|
+
new ExtraWatchWebpackPlugin({ dirs: [ path.resolve(__dirname, '<%= opal_directory %>') ] })
|
36
|
+
],
|
37
|
+
module: {
|
38
|
+
rules: [
|
39
|
+
{
|
40
|
+
// loader for .scss files
|
41
|
+
// test means "test for for file endings"
|
42
|
+
test: /\.s[ac]ss$/,
|
43
|
+
use: [
|
44
|
+
{ loader: "style-loader" },
|
45
|
+
{ loader: "css-loader" },
|
46
|
+
{
|
47
|
+
loader: "sass-loader",
|
48
|
+
options: {
|
49
|
+
sassOptions: { includePaths: [path.resolve(__dirname, '<%= stylesheets_directory %>')] },
|
50
|
+
sourceMap: false
|
51
|
+
}
|
52
|
+
}
|
53
|
+
]
|
54
|
+
},
|
55
|
+
{
|
56
|
+
// loader for .css files
|
57
|
+
test: /\.css$/,
|
58
|
+
use: [
|
59
|
+
{ loader: "style-loader" },
|
60
|
+
{ loader: "css-loader" }
|
61
|
+
]
|
62
|
+
},
|
63
|
+
{
|
64
|
+
test: /\.(png|svg|jpg|gif|woff|woff2|eot|ttf|otf)$/,
|
65
|
+
use: [ "file-loader" ]
|
66
|
+
},
|
67
|
+
{
|
68
|
+
// opal-webpack-loader will compile and include ruby files in the pack
|
69
|
+
test: /(\.js)?\.rb$/,
|
70
|
+
use: [
|
71
|
+
{
|
72
|
+
loader: 'opal-webpack-loader',
|
73
|
+
options: {
|
74
|
+
sourceMap: false,
|
75
|
+
hmr: true,
|
76
|
+
hmrHook: '<%= hmr_hook %>'
|
77
|
+
}
|
78
|
+
}
|
79
|
+
]
|
80
|
+
}
|
81
|
+
]
|
82
|
+
},
|
83
|
+
// configuration for webpack-dev-server
|
84
|
+
devServer: {
|
85
|
+
<%= dev_server_before %>
|
86
|
+
open: false,
|
87
|
+
port: 3035,
|
88
|
+
hot: false,
|
89
|
+
https: false,
|
90
|
+
allowedHosts: 'all',
|
91
|
+
headers: {
|
92
|
+
"Access-Control-Allow-Origin": "*",
|
93
|
+
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, PATCH, OPTIONS",
|
94
|
+
"Access-Control-Allow-Headers": "X-Requested-With, content-type, Authorization"
|
95
|
+
},
|
96
|
+
static: {
|
97
|
+
directory: path.resolve(__dirname, 'public'),
|
98
|
+
watch: {
|
99
|
+
// in case of problems with hot reloading uncomment the following two lines:
|
100
|
+
// aggregateTimeout: 250,
|
101
|
+
// poll: 50,
|
102
|
+
ignored: /\bnode_modules\b/
|
103
|
+
}
|
104
|
+
},
|
105
|
+
host: 'localhost'
|
106
|
+
}
|
107
|
+
};
|
108
|
+
|
109
|
+
const browser_config = {
|
110
|
+
target: 'web',
|
111
|
+
entry: {
|
112
|
+
application: [path.resolve(__dirname, '<%= js_entry %>')]
|
113
|
+
}
|
114
|
+
};
|
115
|
+
|
116
|
+
const ssr_config = {
|
117
|
+
target: 'node',
|
118
|
+
entry: {
|
119
|
+
application_ssr: [path.resolve(__dirname, '<%= js_ssr_entry %>')]
|
120
|
+
}
|
121
|
+
};
|
122
|
+
|
123
|
+
const web_worker_config = {
|
124
|
+
target: 'webworker',
|
125
|
+
entry: {
|
126
|
+
web_worker: [path.resolve(__dirname, '<%= js_web_worker_entry %>')]
|
127
|
+
}
|
128
|
+
};
|
129
|
+
|
130
|
+
const browser = Object.assign({}, common_config, browser_config);
|
131
|
+
const ssr = Object.assign({}, common_config, ssr_config);
|
132
|
+
const web_worker = Object.assign({}, common_config, web_worker_config);
|
133
|
+
|
134
|
+
module.exports = [ <%= default_targets %> ];
|