Skip to content

Commit 408cde6

Browse files
marcelo-portugalmportuga
authored andcommitted
build(webpack): update build to use webpack in preparation for TS
1 parent 5e11a5f commit 408cde6

File tree

116 files changed

+6410
-8970
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

116 files changed

+6410
-8970
lines changed

.gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ packages/**/*.css
171171
packages/**/ui-grid.*.js
172172
packages/**/LICENSE.md
173173
packages/**/.npmignore
174-
packages/**/index.js
174+
packages/*/index.js
175175

176176
# Installer logs
177177
pip-log.txt

grunt/aliases.js

+5-6
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,16 @@ module.exports = function (grunt, options) {
66
// register before and after test tasks so we don't have to change cli
77
// options on the CI server
88
'before-test': [
9-
'clean', 'shell:lint', 'ngtemplates', 'less', 'copy:font_dist','copy:packages_dist'
10-
], // Have to run less so CSS files are present
9+
'clean', 'shell:lint', 'ngtemplates'
10+
],
1111
'after-test': ['build'],
1212
'default': ['before-test', 'test:single', 'after-test'],
1313

1414
// Build with no testing
1515
'build': [
16-
'ngtemplates', 'concat', 'uglify', 'less', 'uidocs-generator', 'copy:font_dist', 'copy:packages_dist',
16+
'shell:build', 'uidocs-generator',
1717
'copy:site', 'copy:less_customizer',
1818
],
19-
'build:less_dist': ['copy:less_dist', 'replace:less_dist'],
2019

2120
// Auto-test tasks for development
2221
'autotest:unit': ['karmangular:start'],
@@ -54,10 +53,10 @@ module.exports = function (grunt, options) {
5453
var currentTag = semver.clean( util.getCurrentTag() );
5554

5655
if (currentTag) {
57-
baseTasks['release'] = ['clean', 'ngtemplates', 'build', 'build:less_dist', 'cut-release', 'gh-pages:ui-grid-site', 'update-bower-json', 'gh-pages:bower', 'npm-publish'];
56+
baseTasks['release'] = ['clean', 'build', 'cut-release', 'gh-pages:ui-grid-site', 'update-bower-json', 'gh-pages:bower', 'npm-publish'];
5857
}
5958
else {
60-
baseTasks['release'] = ['clean', 'ngtemplates', 'build', 'build:less_dist', 'cut-release'];
59+
baseTasks['release'] = ['clean', 'build', 'cut-release'];
6160
}
6261

6362
return baseTasks;

grunt/clean.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@ module.exports =
22
// Clean the temp directory
33
['.tmp', '<%= dist %>', 'docs', 'coverage',
44
'packages/*/.npmignore', 'packages/*/LICENSE.md',
5-
'packages/*/css', 'packages/*/js', 'packages/*/*.js']
5+
'packages/*/css', 'packages/*/dist', 'packages/*/js', 'packages/*/index.js']
66
;

grunt/concat.js

-48
This file was deleted.

grunt/less.js

-74
This file was deleted.

grunt/replace.js

-19
This file was deleted.

grunt/shell.js

+3
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ module.exports = function() {
1515
async: true
1616
}
1717
},
18+
build: {
19+
command: 'npm run build-dx'
20+
},
1821
lint: {
1922
command: 'npm run lint'
2023
},

grunt/uglify.js

-21
This file was deleted.

grunt/uidocs-generator.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ module.exports = {
88
versions: {
99
stable: [
1010
{ src: '/release/<%= pkg.name %>.js', type: 'script' },
11-
{ src: '/release/<%= pkg.name %>.css', type: 'css' }
11+
{ src: '/release/css/<%= pkg.name %>.css', type: 'css' }
1212
],
1313
unstable: [
1414
{ src: '/release/<%= pkg.name %>-unstable.js', type: 'script' },
15-
{ src: '/release/<%= pkg.name %>-unstable.css', type: 'css' }
15+
{ src: '/release/css/<%= pkg.name %>-unstable.css', type: 'css' }
1616
]
1717
}
1818
},

grunt/watch.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,18 @@ module.exports = function( grunt, options ){
66

77
gruntfile: {
88
files: ['packages/*/src/**/*.js', 'packages/*/test/**/*.spec.js', 'test/**/*.spec.js', 'grunt/*.js'],
9-
tasks: ['shell:lint', 'uidocs-generator']
9+
tasks: ['shell:lint', 'shell:build', 'uidocs-generator']
1010
},
1111

1212
ngtemplates: {
1313
// files: ['packages/*/src/templates/**/*.html'],
1414
files: '<%= ngtemplates.uigrid.src %>',
15-
tasks: ['ngtemplates']
15+
tasks: ['ngtemplates', 'shell:build']
1616
},
1717

1818
rebuild: {
1919
files: util.testFiles.unit,
20-
tasks: ['shell:lint', 'karmangular:run', 'concat', 'uglify', 'uidocs-generator'],
20+
tasks: ['shell:lint', 'karmangular:run', 'shell:build', 'uidocs-generator'],
2121
},
2222

2323
protractor: {
@@ -27,7 +27,7 @@ module.exports = function( grunt, options ){
2727

2828
less: {
2929
files: 'src/**/*.less',
30-
tasks: ['less', 'uidocs-generator', 'concat:customizer_less']
30+
tasks: ['shell:less', 'uidocs-generator', 'concat:customizer_less']
3131
},
3232

3333
docs: {

index.js

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
require('./packages/core/src/index.js');
2+
require('./packages/i18n/src/index.js');
3+
require('./packages/auto-resize/src/index.js');
4+
require('./packages/cellnav/src/index.js');
5+
require('./packages/edit/src/index.js');
6+
require('./packages/empty-base-layer/src/index.js');
7+
require('./packages/expandable/src/index.js');
8+
require('./packages/exporter/src/index.js');
9+
require('./packages/grouping/src/index.js');
10+
require('./packages/importer/src/index.js');
11+
require('./packages/infinite-scroll/src/index.js');
12+
require('./packages/move-columns/src/index.js');
13+
require('./packages/pagination/src/index.js');
14+
require('./packages/pinning/src/index.js');
15+
require('./packages/resize-columns/src/index.js');
16+
require('./packages/row-edit/src/index.js');
17+
require('./packages/saveState/src/index.js');
18+
require('./packages/selection/src/index.js');
19+
require('./packages/tree-base/src/index.js');
20+
require('./packages/tree-view/src/index.js');
21+
require('./packages/validate/src/index.js');

lib/grunt/utils.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,10 @@ var grunt = require('grunt');
44
var semver = require('semver');
55
var shell = require('shelljs');
66

7-
// Get the list of angular files (angular.js, angular-mocks.js, etc)
8-
var cachedAngularFiles = grunt.file.readJSON('lib/test/angular/files.json');
9-
107
var util = module.exports = {
118

129
testDependencies: {
13-
unit: ['bower_components/jquery/jquery.min.js', 'lib/test/jquery.simulate.js','lib/test/classList.polyFill.js', 'dist/release/ui-grid.css', 'bower_components/lodash/dist/lodash.min.js', 'bower_components/csv-js/csv.js']
10+
unit: ['bower_components/jquery/jquery.min.js', 'lib/test/jquery.simulate.js','lib/test/classList.polyFill.js', 'dist/release/css/ui-grid.css', 'bower_components/lodash/dist/lodash.min.js', 'bower_components/csv-js/csv.js']
1411
},
1512

1613
testFiles: {
@@ -28,6 +25,9 @@ var util = module.exports = {
2825

2926
// Return a list of angular files for a specific version
3027
angularFiles: function (version) {
28+
// Get the list of angular files (angular.js, angular-mocks.js, etc)
29+
var cachedAngularFiles = grunt.file.readJSON('lib/test/angular/files.json');
30+
3131
if (version === 'latest') {
3232
version = util.latestAngular();
3333
}

lib/less/main.less

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
@import '../../packages/core/less/main.less';
2+
@import '../../packages/cellnav/less/cellnav.less';
3+
@import '../../packages/edit/less/edit.less';
4+
@import '../../packages/empty-base-layer/less/emptyBaseLayer.less';
5+
@import '../../packages/expandable/less/expandable.less';
6+
@import '../../packages/exporter/less/exporter.less';
7+
@import '../../packages/grouping/less/grouping.less';
8+
@import '../../packages/importer/less/importer.less';
9+
@import '../../packages/pagination/less/pagination.less';
10+
@import '../../packages/pinning/less/pinning.less';
11+
@import '../../packages/resize-columns/less/resizeColumns.less';
12+
@import '../../packages/row-edit/less/rowEdit.less';
13+
@import '../../packages/selection/less/selection.less';
14+
@import '../../packages/tree-base/less/treeBase.less';
15+
@import '../../packages/tree-view/less/treeView.less';
16+
@import '../../packages/validate/less/validate.less';

lib/webpack/webpack.common.js

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
const _ = require('lodash');
2+
const path = require('path');
3+
const webpack = require('webpack');
4+
5+
const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
6+
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
7+
8+
const {bannerLoader, terser} = require('./webpack.utils');
9+
10+
module.exports = (dir, hasCss = false) => {
11+
const packageName = _.last(dir.split('/'));
12+
const mainJs = './src/index.js';
13+
const entry = hasCss ? [mainJs, `./less/${_.camelCase(packageName)}.less`] : [mainJs];
14+
const htmlLoader = {
15+
test: /\.html$/i,
16+
include: path.resolve(dir, 'src'),
17+
loader: 'text-loader',
18+
};
19+
const rules = hasCss ? [
20+
{
21+
test: /\.less$/,
22+
include: path.resolve(dir, 'less'),
23+
use: [
24+
MiniCssExtractPlugin.loader,
25+
'css-loader',
26+
'less-loader',
27+
]
28+
},
29+
htmlLoader
30+
] : [htmlLoader];
31+
const minimizer = hasCss ? [
32+
new CssMinimizerPlugin({
33+
test: /\.min.css(\?.*)?$/i
34+
}),
35+
terser
36+
] : [terser];
37+
const plugins = hasCss ? [
38+
new MiniCssExtractPlugin(),
39+
bannerLoader
40+
] : [bannerLoader];
41+
42+
return {
43+
mode: 'production',
44+
entry: {
45+
[`ui-grid.${packageName}`]: entry,
46+
[`ui-grid.${packageName}.min`]: entry
47+
},
48+
module: {rules},
49+
output: {
50+
pathinfo: false,
51+
path: path.resolve(dir, 'dist'),
52+
filename: '[name].js'
53+
},
54+
optimization: {
55+
minimize: true,
56+
minimizer
57+
},
58+
plugins
59+
};
60+
};

0 commit comments

Comments
 (0)