hoist requires in AMD modules and modularize some webpack stuff

This commit is contained in:
spalger 2015-07-15 14:45:08 -07:00
parent b15d6f2399
commit ec5a8f76ea
5 changed files with 11 additions and 71 deletions

View file

@ -41,6 +41,7 @@
"dependencies": {
"angular-nvd3": "panda01/angular-nvd3#kibana",
"ansicolors": "^0.3.2",
"auto-preload-rjscommon-deps-loader": "^1.0.1",
"autoprefixer-loader": "^2.0.0",
"babel-jscs": "^1.0.3",
"bluebird": "^2.9.27",
@ -90,7 +91,8 @@
"style-loader": "^0.12.3",
"through": "^2.3.6",
"url-loader": "^0.5.6",
"webpack": "^1.10.0"
"webpack": "^1.10.0",
"webpack-directory-name-as-main": "^1.0.0"
},
"devDependencies": {
"bower": "^1.4.1",

View file

@ -1,41 +0,0 @@
/*****
* Modified clone of https://github.com/webpack/enhanced-resolve/blob/3b88905ad3cb6392f48f7bc57d351891774fd93b/lib/DirectoryDefaultFilePlugin.js
*****
/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
var _ = require('lodash');
var basename = require('path').basename;
function DirectoryDefaultFilePlugin(files) {}
module.exports = DirectoryDefaultFilePlugin;
DirectoryDefaultFilePlugin.prototype.apply = function (resolver) {
resolver.plugin('directory', function (request, done) {
handle(request).then(function (result) {
done(null, result);
}, done);
});
var handle = _.memoize(function (req) {
return new Promise(function (resolve, reject) {
var directory = resolver.join(req.path, req.request);
resolver.fileSystem.stat(directory, function (err, stat) {
if (err || !stat) return resolve();
if (!stat.isDirectory()) return resolve();
resolver.doResolve('file', {
path: req.path,
query: req.query,
request: resolver.join(directory, basename(directory))
}, function (err, result) {
return resolve(result || undefined);
});
});
});
}, function (req) {
return `${req.path}!${req.request}!${req.query}`;
});
};

View file

@ -11,7 +11,7 @@ var assets = require('../ui/assets');
var fromRoot = require('../../utils/fromRoot');
var OptmzBundles = require('./OptmzBundles');
var OptmzUiModules = require('./OptmzUiModules');
var DirectoryNameAsDefaultFile = require('./DirectoryNameAsDefaultFile');
var DirectoryNameAsMain = require('webpack-directory-name-as-main');
var ExtractTextPlugin = require('extract-text-webpack-plugin');
class Optimizer extends EventEmitter {
@ -49,11 +49,10 @@ class Optimizer extends EventEmitter {
plugins: [
new webpack.ResolverPlugin([
new DirectoryNameAsDefaultFile()
new DirectoryNameAsMain()
]),
new webpack.NoErrorsPlugin(),
new webpack.optimize.DedupePlugin(),
new webpack.optimize.OccurenceOrderPlugin(),
new ExtractTextPlugin('[name].style.css', {
allChunks: true
})
@ -66,6 +65,7 @@ class Optimizer extends EventEmitter {
{ test: /\.(html|tmpl)$/, loader: 'raw' },
{ test: /\.png$/, loader: 'url?limit=2048!file?name=[path][name].[ext]' },
{ test: /\.(woff|woff2|ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: 'file?name=[path][name].[ext]' },
{ test: /\/src\/(plugins|ui)\/.+\.js$/, loader: 'auto-preload-rjscommon-deps' }
].concat(modules.loaders),
noParse: modules.noParse,
},

View file

@ -36,8 +36,7 @@ class UiApp {
this.uiExports.find(_.get(this, 'spec.uses', [])),
])
.flatten()
.sort()
.uniq(true)
.uniq()
.push(this.main)
.value()
};

View file

@ -11,30 +11,10 @@ exports.reload = function () {
exports.directives = scan('directives');
exports.filters = scan('filters');
var excludeStyles = [
'ui-styles/mixins.less',
'ui-styles/variables.less',
];
exports.styles = _.union(
[
'ui-styles/theme.less',
'ui-styles/base.less'
],
scan('ui-styles', true).filter(function (file) {
var i = excludeStyles.indexOf(file);
if (i > -1) {
excludeStyles.splice(i, 1);
return false;
}
return true;
})
);
if (excludeStyles.length) {
throw new Error(`Styles which were supposed to be excluded from autoload not found! ${excludeStyles}`);
}
var base = ['ui-styles/theme.less', 'ui-styles/base.less'];
var exclude = ['ui-styles/mixins.less', 'ui-styles/variables.less'];
var found = scan('ui-styles', true);
exports.styles = _.difference(_.union(base, found), exclude);
exports.uiComponents = [
'chrome',