Files
swagger-ui/webpack-dist.config.js
RVKen 4b85dc55d3 Merge branch 'master' into webpack-migration-2.x
# Conflicts:
#	dist/swagger-ui-bundle.js
#	dist/swagger-ui-bundle.js.map
#	dist/swagger-ui-standalone-preset.js
#	dist/swagger-ui-standalone-preset.js.map
#	dist/swagger-ui.js
#	dist/swagger-ui.js.map
#	package.json
#	webpack-dist.config.js
#	webpack-hot-dev-server.config.js
2017-06-28 18:40:52 +02:00

96 lines
2.1 KiB
JavaScript

var path = require('path')
var fs = require('fs')
const nodeModules = fs.readdirSync("node_modules").filter(function(x) { return x !== ".bin" })
var ExtractTextPlugin = require('extract-text-webpack-plugin')
var rules = [
{ test: /\.(worker\.js)(\?.*)?$/,
use: [
{
loader: 'worker-loader',
options: {
inline: true,
name: '[name].js'
}
},
{ loader: 'babel-loader' }
]
},
{ test: /\.(css)(\?.*)?$/,
use: ExtractTextPlugin.extract({
fallback: 'style-loader',
use: [
'css-loader',
'postcss-loader'
]
})
},
{ test: /\.(scss)(\?.*)?$/,
use: ExtractTextPlugin.extract({
fallback: 'style-loader',
use: [
'css-loader',
{
loader: 'postcss-loader',
options: { sourceMap: true }
},
{ loader: 'sass-loader',
options: {
outputStyle: 'expanded',
sourceMap: true,
sourceMapContents: 'true'
}
}
]
})
},
{ test: /\.(less)(\?.*)?$/,
use: ExtractTextPlugin.extract({
fallback: 'style-loader',
use: ['css-loader',
{
loader: 'postcss-loader',
},
'less-loader'
]
})
}
]
module.exports = require('./make-webpack-config.js')(rules, {
_special: {
separateStylesheets: true,
minimize: true,
sourcemaps: true,
},
entry: {
"swagger-ui": [
"./src/style/main.scss",
"./src/polyfills",
"./src/core/index.js"
]
},
externals: function(context, request, cb) {
// webpack injects some stuff into the resulting file,
// these libs need to be pulled in to keep that working.
var exceptionsForWebpack = ["ieee754", "base64-js"]
if(nodeModules.indexOf(request) !== -1 || exceptionsForWebpack.indexOf(request) !== -1) {
cb(null, "commonjs " + request)
return
}
cb()
},
output: {
path: path.join(__dirname, "dist"),
publicPath: "/dist",
library: "SwaggerUICore",
libraryTarget: "umd",
filename: "[name].js",
chunkFilename: "js/[name].js",
},
})