You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
1.8 KiB
73 lines
1.8 KiB
const path = require('path'); |
|
const webpack = require('webpack'); |
|
const CopyWebpackPlugin = require('copy-webpack-plugin'); |
|
|
|
function resolve(dir) { |
|
return path.join(__dirname, '..', dir) |
|
} |
|
|
|
module.exports = { |
|
target: 'node', |
|
context: resolve('src'), |
|
entry: { |
|
'./module': './module.ts', |
|
'./panel/graph_panel/module': './panel/graph_panel/graph_ctrl.ts', |
|
'./datasource/module': './datasource/module.ts' |
|
}, |
|
output: { |
|
filename: '[name].js', |
|
path: resolve('dist'), |
|
libraryTarget: 'amd' |
|
}, |
|
externals: [ |
|
// remove the line below if you don't want to use buildin versions |
|
'lodash', 'moment', 'angular', |
|
function(context, request, callback) { |
|
var prefix = 'grafana/'; |
|
if (request.indexOf(prefix) === 0) { |
|
return callback(null, request.substr(prefix.length)); |
|
} |
|
callback(); |
|
} |
|
], |
|
plugins: [ |
|
new webpack.optimize.OccurrenceOrderPlugin(), |
|
new CopyWebpackPlugin([ |
|
{ from: 'plugin.json' }, |
|
{ from: 'img/*' }, |
|
{ from: 'panel/graph_panel/plugin.json', to: 'panel/graph_panel/plugin.json' }, |
|
{ from: 'panel/graph_panel/partials/*' }, |
|
{ from: 'datasource/plugin.json', to: 'datasource/plugin.json' }, |
|
]) |
|
], |
|
resolve: { |
|
extensions: ['.ts', '.js'], |
|
}, |
|
module: { |
|
rules: [ |
|
{ |
|
test: /\.tsx?$/, |
|
loaders: [ |
|
'ts-loader' |
|
], |
|
exclude: /node_modules/, |
|
}, |
|
{ |
|
test: /\.html$/, |
|
use: 'raw-loader' |
|
}, |
|
{ |
|
test: /jquery\.flot\.(?!events)/, |
|
loaders: [ |
|
'imports-loader?jQuery=jquery' |
|
] |
|
}, |
|
{ |
|
test: /jquery\.flot\.events/, |
|
loaders: [ |
|
'imports-loader?jQuery=jquery,lodash=lodash,angular=angular,tetherDrop=tether-drop' |
|
] |
|
} |
|
] |
|
} |
|
}
|
|
|