盒子
盒子

webpack配置

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
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
/**
* Created by maotingfeng on 16/7/18.
*/
var webpack = require( 'webpack' ) ,
CommonsChunkPlugin = webpack.optimize.CommonsChunkPlugin ,
path = require( 'path' ) ,
root = path.resolve( './public_src' ) ,
env = process.env.NODE_ENV ,
plugins = null ,
loaders = [] ,
__public = 'public' ,
__public_src = 'public_src',
__js = path.join( __dirname , __public , 'js' ) ,
__js_src = path.join( __dirname , __public_src , 'js' ) ,
__css = path.join( __dirname , __public , 'css' ) ;
// extract-text-webpack-plugin : 有时候可能希望项目的样式能不要被打包到脚本中,而是独立出来作为.css,然后在页面中以<link>标签引入。这时候我们需要 来帮忙:
//var htmlWebpackPlugin = require( 'html-webpack-plugin' ) ;
var importES5Shim = 'imports?shim='+ path.resolve( __js , 'es5-shim/es5-shim.min' ) + '&sham='+ path.resolve( __js , 'es5-shim/es5-sham' ) ;
var plugin_uglify = new webpack.optimize.UglifyJsPlugin( {
mangle:{ except: ['$','jQuery','exports','require','module'] } ,
compress: {
warnings: false , // 警告信息不显示
} ,
sourceMap: true
} ) ;
/* ,
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery",
"window.jQuery": "jquery"
})
*/
var loader_scss = env == 'production' ? importES5Shim + '!style!css!autoprefixer?browsers=last 20 version!sass' : 'style!css?modules&importLoaders=2&sourceMap&localIdentName=[local]___[hash:base64:5]!autoprefixer?browsers=last 20 version!sass?outputStyle=expanded&sourceMap' ;
// 加载器
loaders = [
{ test: /\.scss$/ , loader: loader_scss } ,
{ test: /\.css$/ , loader: importES5Shim + '!style!css' } ,
{ test: /\.jade$/ , loader: 'jade' } ,
{
test: /\.(jpe?g|png|gif|svg)$/i ,
publicPath: '../images/' ,
loaders: [
'file?hash=sha512&digest=hex&name=[hash].[ext]'
]
}
] ;
// 插件
plugins = [
// 提取公共部分
// new CommonsChunkPlugin( 'hr_common.min.js' , [ 'hr_index' , 'hr_jobs' , 'hr_resume_upload' , 'hr_resume_edit' , 'hr_my_resume' , 'hr_my_account' , 'hr_my_account_edit' , 'hr_my_wallet' , 'hr_resumes' , 'hr_register_account' , 'hr_register_info' , 'hr_job_detail' , 'hr_findpwd' ] )
]
if( env == 'production' ){
plugins.push( plugin_uglify ) ;
}else{
}
module.exports = {
entry: {
'index' : path.resolve( __js_src , 'index.js' ) ,
// 个人 hr
'hr_index' : path.resolve( __js_src , 'hr_index.js' ) ,
'hr_jobs' : path.resolve( __js_src , 'hr_jobs.js' ) ,
'hr_resume_upload' : path.resolve( __js_src , 'hr_resume_upload.js' ) ,
'hr_resume_edit' : path.resolve( __js_src , 'hr_resume_edit.js' ) ,
'hr_my_resume' : path.resolve( __js_src , 'hr_my_resume.js' ) ,
'hr_my_account' : path.resolve( __js_src , 'hr_my_account.js' ) ,
'hr_my_account_edit' : path.resolve( __js_src , 'hr_my_account_edit.js' ) ,
'hr_my_wallet': path.resolve( __js_src , 'hr_my_wallet.js' ) ,
'hr_resumes': path.resolve( __js_src , 'hr_resumes.js' ) ,
'hr_register_account': path.resolve( __js_src , 'hr_register_account.js' ) ,
'hr_register_info': path.resolve( __js_src , 'hr_register_info.js' ) ,
'hr_job_detail': path.resolve( __js_src , 'hr_job_detail.js' ) ,
'hr_findpwd': path.resolve( __js_src , 'hr_findpwd.js' ) ,
// 企业 company
'company_work': path.resolve( __js_src , 'company_work.js' ),
'company_wallet': path.resolve( __js_src , 'company_wallet.js'),
'company_resumes': path.resolve( __js_src , 'company_resumes.js'),
'company_report_form': path.resolve( __js_src , 'company_report_form.js'),
'company_register_corporate': path.resolve( __js_src , 'company_register_corporate.js'),
'company_register_account': path.resolve( __js_src , 'company_register_account.js' ),
'company_publish_post': path.resolve( __js_src , 'company_publish_post.js'),
'company_position': path.resolve( __js_src, 'company_position.js'),
'company_job_details': path.resolve( __js_src , 'company_job_details.js'),
'company_findpwd': path.resolve( __js_src , 'company_findpwd.js'),
'company_candidate': path.resolve( __js_src , 'company_candidate.js'),
'company_account_set': path.resolve( __js_src , 'company_account_set.js'),
'company_account_edit': path.resolve( __js_src , 'company_account_edit.js'),
'company_apply_promise_service': path.resolve( __js_src , 'company_apply_promise_service.js'),
'steward': path.resolve( __js_src , 'steward.js'),
// 公共部分(hr、company)
'common_resume_detail': path.resolve( __js_src , 'common_resume_detail.js' ) ,
'common_login': path.resolve( __js_src , 'common_login.js' ) ,
'common_msg': path.resolve( __js_src , 'common_msg.js' )
} ,
output: {
path: './public/js' ,
publicPath: '/js/' ,
filename: '[name].min.js'
} ,
module: {
noParse: [ /moment\.min\.js/ ] ,
loaders: loaders
} ,
plugins: plugins ,
resolve: {
root: [ root ] ,
alias: {
switchable: path.resolve( __js_src , 'lib/switchable.min.js' ) ,
dialog: path.resolve( __js_src , 'lib/dialog' ) ,
hrjia_dialog: path.resolve( __js_src , 'lib/hrjia_dialog/hrjia_dialog.js' ) ,
jquerytmpl: path.resolve( __js_src , 'lib/jquery.tmpl.js' ) ,
validation: path.resolve( __js_src , 'lib/jquery-validation-1.14.0/dist/jquery.validate' ) ,
validation_zh: path.resolve( __js_src , 'lib/jquery-validation-1.14.0/dist/localization/messages_zh' ) ,
kitpage: path.resolve( __js_src , 'lib/kitpage.js' ) ,
momentjs: path.resolve( __js_src , 'lib/moment/min/moment.min.js' ) ,
easyaddress: path.resolve( __js_src , 'lib/easyaddress/jquery.easyaddress.js' ) ,
cookie: path.resolve( __js_src , 'lib/cookie.js' ) ,
md5 : path.resolve( __js_src , 'lib/jquery.md5.js' ) ,
mdate: path.resolve( __js_src , 'lib/mdate.js' ) ,
cropper: path.resolve( __js_src , 'lib/cropper-v2.3.0/cropper.js' ) ,
ajaxFileUpload: path.resolve( __js_src , 'lib/ajax_file_upload.js' ) ,
boardPopup: path.resolve( __js_src , 'lib/boardPopup.js' ) ,
upload_resume: path.resolve( __js_src , 'upload_resume.js' ) ,
webuploader: path.resolve( __js_src , 'lib/webuploader-0.1.5/webuploader.min' ) ,
percircle: path.resolve( __js_src , 'lib/percircle/percircle' ) ,
perfectScrollbar: path.resolve( __js_src , 'lib/perfect-scrollbar/js/perfect-scrollbar.jquery' ) ,
checkReg: path.resolve( __js_src , 'lib/checkReg' ) ,
ymdate: path.resolve( __js_src , 'lib/ymdate' ) ,
browserCheck: path.resolve( __js_src , 'browserCheck' ) ,
global: path.resolve( __js_src , 'global.js' ) ,
hr_global: path.resolve( __js_src , 'hr_global.js' ) ,
company_global: path.resolve( __js_src , 'company_global.js' ) ,
common_upload_img: path.resolve( __js_src , 'common_upload_img.js' ),
echarts: path.resolve( __js_src , 'lib/echarts.min.js')
}
} ,
externals: {
"$" : "jQuery" ,
"jQuery" : "jQuery" ,
"jquery" : "jQuery"
}
}
支持一下
扫一扫,支持lcoder