Refactor rollup config

Add config for
- production
- docs

Add eslint

Remove unused dependencies
This commit is contained in:
Faris Ansari 2018-04-15 22:20:18 +05:30
parent 5ff72dfcee
commit 98afce65ac
5 changed files with 614 additions and 555 deletions

View File

@ -1,2 +1,2 @@
dist
docs/frappe-datatable.js
docs

View File

@ -1,10 +1,4 @@
{
"ecmaFeatures": {
"globalReturn": true,
"jsx": true,
"modules": true
},
"parserOptions": {
"ecmaVersion": 6,
"sourceType": "module"

View File

@ -6,25 +6,26 @@
"scripts": {
"start": "yarn run dev",
"build": "rollup -c",
"production": "rollup -c --production",
"build:docs": "rollup -c --docs",
"dev": "rollup -c -w",
"test": "mocha --compilers js:babel-core/register --colors ./test/*.spec.js",
"test:watch": "mocha --compilers js:babel-core/register --colors -w ./test/*.spec.js"
"test": "mocha --compilers js:babel-core/register --colors ./test/*.spec.js"
},
"devDependencies": {
"chai": "3.5.0",
"cssnano": "^3.10.0",
"deepmerge": "^2.0.1",
"eslint": "3.19.0",
"eslint-loader": "1.7.1",
"eslint-config-airbnb": "^16.1.0",
"eslint-config-airbnb-base": "^12.1.0",
"eslint-plugin-import": "^2.11.0",
"mocha": "3.3.0",
"postcss-cssnext": "^3.1.0",
"postcss-nested": "^3.0.0",
"precss": "^3.1.0",
"rollup-plugin-commonjs": "^8.3.0",
"rollup-plugin-eslint": "^4.0.0",
"rollup-plugin-json": "^2.3.0",
"rollup-plugin-node-resolve": "^3.0.3",
"rollup-plugin-postcss": "^1.2.8",
"rollup-plugin-uglify": "^3.0.0"
"rollup-plugin-uglify-es": "^0.0.1"
},
"repository": {
"type": "git",

View File

@ -1,52 +1,108 @@
import json from 'rollup-plugin-json';
// import uglify from 'rollup-plugin-uglify';
import uglify from 'rollup-plugin-uglify-es';
import nodeResolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';
import postcss from 'rollup-plugin-postcss';
import nested from 'postcss-nested';
import cssnext from 'postcss-cssnext';
// import cssnano from 'cssnano';
import eslint from 'rollup-plugin-eslint';
import merge from 'deepmerge';
const dev = {
const production = process.argv[3] === '--production';
const baseJS = {
input: 'src/index.js',
output: [{
file: 'dist/frappe-datatable.js',
format: 'iife',
name: 'DataTable',
output: {
file: '',
globals: {
sortablejs: 'Sortable',
'clusterize.js': 'Clusterize'
}
}, {
file: 'docs/assets/frappe-datatable.js',
format: 'iife',
name: 'DataTable',
globals: {
sortablejs: 'Sortable',
'clusterize.js': 'Clusterize'
}
}],
},
plugins: [
json(),
eslint({
exclude: '**/*.json'
}),
nodeResolve(),
commonjs(),
commonjs()
],
external: ['sortablejs', 'clusterize.js']
};
const baseCSS = {
input: 'src/style.css',
output: {
file: ''
},
plugins: [
postcss({
extract: 'dist/frappe-datatable.css',
extract: true,
minimize: production,
plugins: [
nested(),
cssnext()
]
})
],
external: ['sortablejs', 'clusterize.js']
]
};
export default [
dev,
Object.assign({}, dev, {
output: {
format: 'cjs',
file: 'dist/frappe-datatable.cjs.js'
}
})
];
const devIIFE = merge(baseJS, {
output: {
file: 'dist/frappe-datatable.js',
format: 'iife',
name: 'DataTable'
}
});
const devCjs = merge(baseJS, {
output: {
file: 'dist/frappe-datatable.cjs.js',
format: 'cjs'
}
});
const devCSS = merge(baseCSS, {
output: {
file: 'dist/frappe-datatable.css',
format: 'cjs'
}
});
// production
const prodIIFE = merge(devIIFE, {
output: {
file: 'dist/frappe-datatable.min.js'
},
plugins: [
uglify()
]
});
const prodCSS = merge(devCSS, {
output: {
file: 'dist/frappe-datatable.min.css'
}
});
// docs
const docJS = merge(devIIFE, {
output: {
file: 'docs/assets/frappe-datatable.js'
}
});
const docCSS = merge(devCSS, {
output: {
file: 'docs/assets/frappe-datatable.css'
}
});
const developmentAssets = [devIIFE, devCjs, devCSS];
const documentationAssets = [docJS, docCSS];
const productionAssets = [prodIIFE, prodCSS];
const docs = process.argv[3] === '--docs';
const assets = docs ? documentationAssets : production ? productionAssets : developmentAssets;
export default assets;

1032
yarn.lock

File diff suppressed because it is too large Load Diff