Skip to content

Commit 1b95e55

Browse files
committed
Add rollup config
1 parent cca3908 commit 1b95e55

File tree

5 files changed

+2298
-25
lines changed

5 files changed

+2298
-25
lines changed

.babelrc

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"presets": [
3+
["@babel/env", { "modules": false, "loose": true } ]
4+
]
5+
}

app/javascript/active_admin/base.js

+23-22
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,24 @@
1-
//= require jquery3
2-
//= require jquery-ui/widgets/datepicker
3-
//= require jquery-ui/widgets/dialog
4-
//= require jquery-ui/widgets/sortable
5-
//= require jquery-ui/widgets/tabs
6-
//= require jquery-ui/widget
7-
//= require jquery_ujs
8-
//= require_self
9-
//= require ./ext/jquery
10-
//= require ./ext/jquery-ui
11-
//= require ./lib/active_admin
12-
//= require ./lib/batch_actions
13-
//= require ./lib/dropdown-menu
14-
//= require ./lib/has_many
15-
//= require ./lib/modal_dialog
16-
//= require ./lib/per_page
17-
//= require ./lib/checkbox-toggler
18-
//= require ./lib/table-checkbox-toggler
19-
//= require ./initializers/datepicker
20-
//= require ./initializers/filters
21-
//= require ./initializers/tabs
1+
import "jquery"
2+
import "jquery-ui/ui/widgets/datepicker"
3+
import "jquery-ui/ui/widgets/dialog"
4+
import "jquery-ui/ui/widgets/sortable"
5+
import "jquery-ui/ui/widgets/tabs"
6+
import "jquery-ui/ui/widget"
7+
import "jquery-ujs"
228

23-
window.ActiveAdmin = {}
9+
import "./ext/jquery"
10+
import "./ext/jquery-ui"
11+
import "./lib/active_admin"
12+
import "./lib/batch_actions"
13+
import "./lib/checkbox-toggler"
14+
import "./lib/dropdown-menu"
15+
import "./lib/has_many"
16+
import "./lib/modal_dialog"
17+
import "./lib/per_page"
18+
import "./lib/table-checkbox-toggler"
19+
import "./initializers/datepicker"
20+
import "./initializers/filters"
21+
import "./initializers/tabs"
22+
23+
24+
window.ActiveAdmin = {};

package.json

+28-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
11
{
2-
"name": "activeadmin",
2+
"name": "active_admin",
33
"version": "2.1.0",
44
"description": "The administration framework for Ruby on Rails.",
5+
"main": "app/assets/javascripts/active_admin.js",
6+
"files": [
7+
"app/assets/images/*",
8+
"app/assets/javascripts/*.js",
9+
"app/assets/stylesheets/*.scss",
10+
"src/*.js"
11+
],
512
"repository": {
613
"type": "git",
714
"url": "activeadmin/activeadmin"
@@ -17,9 +24,27 @@
1724
},
1825
"homepage": "htts://activeadmin.info",
1926
"devDependencies": {
20-
"gherkin-lint": "^3.3.3"
27+
"@babel/core": "^7.6.2",
28+
"@babel/preset-env": "^7.6.2",
29+
"common-tags": "^1.8.0",
30+
"eslint": "^6.4.0",
31+
"eslint-plugin-import": "^2.18.2",
32+
"gherkin-lint": "^3.3.6",
33+
"rollup": "^1.21.4",
34+
"rollup-plugin-babel": "^4.3.3",
35+
"rollup-plugin-commonjs": "^10.1.0",
36+
"rollup-plugin-license": "^0.12.1",
37+
"rollup-plugin-node-resolve": "^5.2.0",
38+
"rollup-plugin-uglify": "^6.0.3"
2139
},
2240
"scripts": {
23-
"lint": "gherkin-lint features"
41+
"lint": "gherkin-lint features",
42+
"build": "rollup --config rollup.config.js",
43+
"prepublishOnly": "rm -rf src && cp -R app/javascript/active_admin src"
44+
},
45+
"dependencies": {
46+
"jquery": "^3.4.1",
47+
"jquery-ui": "^1.12.1",
48+
"jquery-ujs": "^1.2.2"
2449
}
2550
}

rollup.config.js

+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import resolve from "rollup-plugin-node-resolve";
2+
import commonjs from "rollup-plugin-commonjs";
3+
import babel from "rollup-plugin-babel";
4+
import { uglify } from "rollup-plugin-uglify";
5+
import license from "rollup-plugin-license";
6+
import { stripIndent } from 'common-tags';
7+
8+
const uglifyOptions = {
9+
mangle: false,
10+
compress: false,
11+
output: {
12+
beautify: true,
13+
indent_level: 2
14+
}
15+
}
16+
17+
export default {
18+
input: "app/javascript/active_admin/base.js",
19+
output: {
20+
file: "app/assets/javascripts/active_admin/base.js",
21+
format: "umd",
22+
name: "ActiveAdmin"
23+
},
24+
plugins: [
25+
resolve(),
26+
commonjs(),
27+
babel(),
28+
uglify(uglifyOptions),
29+
license({
30+
banner: {
31+
commentStyle: 'none',
32+
// Add rails-style imports for sprockets usage
33+
content:stripIndent`
34+
//= require jquery3
35+
//= require jquery-ui/widgets/datepicker
36+
//= require jquery-ui/widgets/dialog
37+
//= require jquery-ui/widgets/sortable
38+
//= require jquery-ui/widgets/tabs
39+
//= require jquery-ui/widget
40+
//= require jquery_ujs
41+
//= require_self
42+
`.trim()
43+
},
44+
}),
45+
],
46+
// Use client's yarn dependencies instead of bundling everything
47+
external: [
48+
'jquery',
49+
'jquery-ui/ui/widgets/datepicker',
50+
'jquery-ui/ui/widgets/dialog',
51+
'jquery-ui/ui/widgets/sortable',
52+
'jquery-ui/ui/widgets/tabs',
53+
'jquery-ui/ui/widget',
54+
'jquery-ujs'
55+
]
56+
}

0 commit comments

Comments
 (0)