-
Notifications
You must be signed in to change notification settings - Fork 3
/
mix.js
99 lines (80 loc) · 3.19 KB
/
mix.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
class AdminMix {
constructor(Mix) {
this.Mix = Mix || require('laravel-mix');
this.handleAliases();
}
static resource(path) {
return 'resources/assets/administrator/' + path.trim('/');
}
static asset(path) {
return 'public/admin/' + path.trim('/');
}
handleFiles() {
this.Mix.copy(AdminMix.resource('images'), AdminMix.asset('images'));
};
handle() {
this.handleFiles();
this.handleScripts();
this.handleStyles();
this.handleEditors();
this.Mix.sourceMaps();
}
handleStyles() {
this.Mix.sass(AdminMix.resource('sass/app.scss'), AdminMix.asset('app.css'));
this.Mix.sass(AdminMix.resource('sass/vendor.scss'), AdminMix.asset('vendor.css'));
this.Mix.less(AdminMix.resource('less/glyphicons.less'), AdminMix.asset('glyphicons.css'));
}
handleScripts() {
this.Mix.js(AdminMix.resource('js/vendor.js'), AdminMix.asset('vendor.js'));
this.Mix.js(AdminMix.resource('js/app.js'), AdminMix.asset('app.js'));
this.Mix.js(AdminMix.resource('js/theme.js'), AdminMix.asset('theme.js'));
}
handleAliases() {
this.Mix.webpackConfig({
resolve: {
alias: {
// Enable if using jquery-ui/sortable
//'jquery-ui/sortable': 'jquery-ui/ui/widgets/sortable',
},
},
/* Do not load MomentJS locales */
plugins: [
new (require('webpack')).IgnorePlugin(/^\.\/locale$/, /moment$/),
]
});
}
handleEditors() {
//this.handleMarkdownEditor();
this.handleMediumEditor();
this.handleTinyMce();
this.handleCkEditor();
}
handleTinyMce() {
this.Mix.copy('node_modules/tinymce/skins', AdminMix.asset('editors/skins'));
this.Mix.js(AdminMix.resource('js/editors/tinymce.js'), AdminMix.asset('editors/tinymce.js'));
}
handleCkEditor() {
this.Mix.copy([
'node_modules/ckeditor/config.js',
'node_modules/ckeditor/styles.js',
'node_modules/ckeditor/contents.css'
], AdminMix.asset('editors'));
this.Mix.copy('node_modules/ckeditor/lang/en.js', AdminMix.asset('editors/lang/en.js'));
this.Mix.copy('node_modules/ckeditor/skins', AdminMix.asset('editors/skins'));
this.Mix.copy('node_modules/ckeditor/plugins', AdminMix.asset('editors/plugins'));
this.Mix.js(AdminMix.resource('js/editors/ckeditor.js'), AdminMix.asset('editors/ckeditor.js'));
}
handleMediumEditor() {
this.Mix.js(AdminMix.resource('js/editors/medium.js'), AdminMix.asset('editors/medium.js'));
this.Mix.sass(AdminMix.resource('sass/editors/medium.scss'), AdminMix.asset('editors/medium.css'));
}
/**
* @uses `simplemde` package
* @note yarn add simplemde | npm install simplemde --save
*/
handleMarkdownEditor() {
this.Mix.js(AdminMix.resource('js/editors/markdown.js'), AdminMix.asset('editors/markdown.js'));
this.Mix.sass(AdminMix.resource('sass/editors/markdown.scss'), AdminMix.asset('editors/markdown.css'));
}
}
module.exports = AdminMix;