mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 01:38:56 -04:00
[webpackShims] support contextual module overrides in the webpack build
This commit is contained in:
parent
184069c706
commit
e1b395004c
17 changed files with 13 additions and 38 deletions
|
@ -131,7 +131,7 @@ class BaseOptimizer {
|
|||
resolve: {
|
||||
extensions: ['.babel.js', '.js', '.less', ''],
|
||||
postfixes: [''],
|
||||
modulesDirectories: ['node_modules'],
|
||||
modulesDirectories: ['webpackShims', 'node_modules'],
|
||||
loaderPostfixes: ['-loader', ''],
|
||||
root: fromRoot('.'),
|
||||
alias: this.env.aliases,
|
||||
|
|
|
@ -1,28 +0,0 @@
|
|||
module.exports = function (kibana) {
|
||||
let _ = require('lodash');
|
||||
let fromRoot = require('../../utils/fromRoot');
|
||||
let { readdirSync } = require('fs');
|
||||
let { resolve, basename } = require('path');
|
||||
|
||||
let modules = {
|
||||
moment$: fromRoot('node_modules/moment/min/moment.min.js')
|
||||
};
|
||||
|
||||
let metaLibs = resolve(__dirname, 'metaLibs');
|
||||
readdirSync(metaLibs).forEach(function (file) {
|
||||
if (file[0] === '.') return;
|
||||
let name = basename(file, '.js') + '$';
|
||||
modules[name] = resolve(metaLibs, file);
|
||||
});
|
||||
|
||||
return new kibana.Plugin({
|
||||
init: false,
|
||||
uiExports: {
|
||||
modules: modules,
|
||||
noParse: [
|
||||
/node_modules[\/\\](angular|elasticsearch-browser)[\/\\]/,
|
||||
/node_modules[\/\\](angular-nvd3|mocha|moment)[\/\\]/
|
||||
]
|
||||
}
|
||||
});
|
||||
};
|
|
@ -1,4 +0,0 @@
|
|||
{
|
||||
"name": "bundledLibs",
|
||||
"version": "1.0.0"
|
||||
}
|
|
@ -38,7 +38,10 @@ module.exports = class UiBundlerEnv {
|
|||
this.pluginInfo = [];
|
||||
|
||||
// regular expressions which will prevent webpack from parsing the file
|
||||
this.noParse = [];
|
||||
this.noParse = [
|
||||
/node_modules[\/\\](angular|elasticsearch-browser)[\/\\]/,
|
||||
/node_modules[\/\\](angular-nvd3|mocha|moment)[\/\\]/
|
||||
];
|
||||
|
||||
// webpack aliases, like require paths, mapping a prefix to a directory
|
||||
this.aliases = {
|
||||
|
|
1
webpackShims/moment.js
Normal file
1
webpackShims/moment.js
Normal file
|
@ -0,0 +1 @@
|
|||
module.exports = require('../node_modules/moment/min/moment.min.js');
|
4
webpackShims/ng-clip.js
Normal file
4
webpackShims/ng-clip.js
Normal file
|
@ -0,0 +1,4 @@
|
|||
require('angular');
|
||||
require('zeroclipboard');
|
||||
require('node_modules/ng-clip/src/ngClip');
|
||||
require('ui/modules').get('kibana', ['ngClipboard']);
|
|
@ -1,10 +1,9 @@
|
|||
require('angular');
|
||||
|
||||
// ng-clip expects ZeroClipboard to be global, but it's UMD, so it never is
|
||||
window.ZeroClipboard = require('node_modules/zeroclipboard/dist/ZeroClipboard.js');
|
||||
window.ZeroClipboard.SWF_URL = require('file!node_modules/zeroclipboard/dist/ZeroClipboard.swf');
|
||||
|
||||
require('node_modules/ng-clip/src/ngClip');
|
||||
require('ui/modules').get('kibana', ['ngClipboard']);
|
||||
window.ZeroClipboard.config({
|
||||
swfPath: window.ZeroClipboard.SWF_URL,
|
||||
});
|
||||
|
||||
module.exports = window.ZeroClipboard;
|
Loading…
Add table
Add a link
Reference in a new issue