1
0
Fork 0
mirror of https://github.com/openstf/stf synced 2025-10-03 09:49:17 +02:00
OpenSTF/webpack.config.js

95 lines
3.4 KiB
JavaScript

var pathutil = require('./lib/util/pathutil')
var webpack = require('webpack')
var CommonsChunkPlugin = require("webpack/lib/optimize/CommonsChunkPlugin")
module.exports = {
webpack: {
cache: true,
entry: {
app: pathutil.resource('app/app.js'),
authldap: pathutil.resource('auth/ldap/scripts/entry.js'),
authmock: pathutil.resource('auth/mock/scripts/entry.js')
},
output: {
path: pathutil.resource('build'),
publicPath: '/static/app/build/',
filename: 'entry/[name].entry.js',
chunkFilename: '[id].[hash].chunk.js'
},
stats: {
colors: true
},
resolve: {
modulesDirectories: [
pathutil.resource('app/components')
, pathutil.resource('web_modules')
, pathutil.resource('bower_components')
, './node_modules'
],
alias: {
'angular-bootstrap': 'angular-bootstrap/ui-bootstrap-tpls',
'localforage': 'localforage/dist/localforage.js',
'socket.io': 'socket.io-client',
'oboe': 'oboe/dist/oboe-browser'
}
},
module: {
loaders: [
{ test: /\.css$/, loader: 'style!css' },
{ test: /\.less$/, loader: 'style-loader!css-loader!less-loader'},
{ test: /\.json$/, loader: 'json' },
{ test: /\.jpg$/, loader: "url-loader?limit=1000&mimetype=image/jpeg" },
{ test: /\.png$/, loader: "url-loader?limit=1000&mimetype=image/png" },
{ test: /\.gif$/, loader: "url-loader?limit=1000&mimetype=image/gif" },
{ test: /\.svg$/, loader: "url-loader?limit=1&mimetype=image/svg+xml" },
{ test: /\.woff$/, loader: "url-loader?limit=1&mimetype=application/font-woff" },
{ test: /\.otf$/, loader: "url-loader?limit=1&mimetype=application/font-woff" },
{ test: /\.ttf$/, loader: "url-loader?limit=1&mimetype=application/font-woff" },
{ test: /\.eot$/, loader: "url-loader?limit=1&mimetype=vnd.ms-fontobject" },
{ test: /\.jade$/, loader: 'template-html-loader' },
{ test: /\.html$/, loader: 'html-loader' },
{ test: /angular\.js$/, loader: 'exports?angular'},
{ test: /angular-route\.js$/, loader: 'imports?angular=angular'},
{ test: /angular-touch\.js$/, loader: 'imports?angular=angular'},
{ test: /angular-animate\.js$/, loader: 'imports?angular=angular'},
{ test: /angular-growl\.js$/, loader: 'imports?angular=angular'},
{ test: /oboe-browser\.js$/, loader: 'imports?define=>false!exports?oboe'},
{ test: /uuid\.js$/, loader: 'imports?require=>undefined'},
//{ test: /ui-bootstrap-tpls\.js$/, loader: 'script'},
{ test: /dialogs\.js$/, loader: 'script'}
],
preLoaders: [
{
test: /\.js$/,
exclude: /node_modules|bower_components/,
loader: 'jshint-loader'
}
],
noParse: [
//pathutil.resource('bower_components')
]
},
plugins: [
new webpack.ResolverPlugin(
new webpack.ResolverPlugin.DirectoryDescriptionFilePlugin(
'bower.json'
, ['main']
)
)
, new webpack.ResolverPlugin(
new webpack.ResolverPlugin.DirectoryDescriptionFilePlugin(
'.bower.json'
, ['main']
)
)
, new CommonsChunkPlugin("entry/commons.entry.js")
]
},
webpackServer: {
debug: true,
devtool: 'eval',
stats: {
colors: true
}
}
}