Refactor rollup config
Add config for - production - docs Add eslint Remove unused dependencies
This commit is contained in:
parent
5ff72dfcee
commit
98afce65ac
@ -1,2 +1,2 @@
|
|||||||
dist
|
dist
|
||||||
docs/frappe-datatable.js
|
docs
|
||||||
@ -1,10 +1,4 @@
|
|||||||
{
|
{
|
||||||
"ecmaFeatures": {
|
|
||||||
"globalReturn": true,
|
|
||||||
"jsx": true,
|
|
||||||
"modules": true
|
|
||||||
},
|
|
||||||
|
|
||||||
"parserOptions": {
|
"parserOptions": {
|
||||||
"ecmaVersion": 6,
|
"ecmaVersion": 6,
|
||||||
"sourceType": "module"
|
"sourceType": "module"
|
||||||
|
|||||||
15
package.json
15
package.json
@ -6,25 +6,26 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "yarn run dev",
|
"start": "yarn run dev",
|
||||||
"build": "rollup -c",
|
"build": "rollup -c",
|
||||||
|
"production": "rollup -c --production",
|
||||||
|
"build:docs": "rollup -c --docs",
|
||||||
"dev": "rollup -c -w",
|
"dev": "rollup -c -w",
|
||||||
"test": "mocha --compilers js:babel-core/register --colors ./test/*.spec.js",
|
"test": "mocha --compilers js:babel-core/register --colors ./test/*.spec.js"
|
||||||
"test:watch": "mocha --compilers js:babel-core/register --colors -w ./test/*.spec.js"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"chai": "3.5.0",
|
"chai": "3.5.0",
|
||||||
"cssnano": "^3.10.0",
|
|
||||||
"deepmerge": "^2.0.1",
|
"deepmerge": "^2.0.1",
|
||||||
"eslint": "3.19.0",
|
"eslint-config-airbnb": "^16.1.0",
|
||||||
"eslint-loader": "1.7.1",
|
"eslint-config-airbnb-base": "^12.1.0",
|
||||||
|
"eslint-plugin-import": "^2.11.0",
|
||||||
"mocha": "3.3.0",
|
"mocha": "3.3.0",
|
||||||
"postcss-cssnext": "^3.1.0",
|
"postcss-cssnext": "^3.1.0",
|
||||||
"postcss-nested": "^3.0.0",
|
"postcss-nested": "^3.0.0",
|
||||||
"precss": "^3.1.0",
|
|
||||||
"rollup-plugin-commonjs": "^8.3.0",
|
"rollup-plugin-commonjs": "^8.3.0",
|
||||||
|
"rollup-plugin-eslint": "^4.0.0",
|
||||||
"rollup-plugin-json": "^2.3.0",
|
"rollup-plugin-json": "^2.3.0",
|
||||||
"rollup-plugin-node-resolve": "^3.0.3",
|
"rollup-plugin-node-resolve": "^3.0.3",
|
||||||
"rollup-plugin-postcss": "^1.2.8",
|
"rollup-plugin-postcss": "^1.2.8",
|
||||||
"rollup-plugin-uglify": "^3.0.0"
|
"rollup-plugin-uglify-es": "^0.0.1"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
|||||||
114
rollup.config.js
114
rollup.config.js
@ -1,52 +1,108 @@
|
|||||||
import json from 'rollup-plugin-json';
|
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 nodeResolve from 'rollup-plugin-node-resolve';
|
||||||
import commonjs from 'rollup-plugin-commonjs';
|
import commonjs from 'rollup-plugin-commonjs';
|
||||||
import postcss from 'rollup-plugin-postcss';
|
import postcss from 'rollup-plugin-postcss';
|
||||||
import nested from 'postcss-nested';
|
import nested from 'postcss-nested';
|
||||||
import cssnext from 'postcss-cssnext';
|
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',
|
input: 'src/index.js',
|
||||||
output: [{
|
output: {
|
||||||
file: 'dist/frappe-datatable.js',
|
file: '',
|
||||||
format: 'iife',
|
|
||||||
name: 'DataTable',
|
|
||||||
globals: {
|
globals: {
|
||||||
sortablejs: 'Sortable',
|
sortablejs: 'Sortable',
|
||||||
'clusterize.js': 'Clusterize'
|
'clusterize.js': 'Clusterize'
|
||||||
}
|
}
|
||||||
}, {
|
},
|
||||||
file: 'docs/assets/frappe-datatable.js',
|
|
||||||
format: 'iife',
|
|
||||||
name: 'DataTable',
|
|
||||||
globals: {
|
|
||||||
sortablejs: 'Sortable',
|
|
||||||
'clusterize.js': 'Clusterize'
|
|
||||||
}
|
|
||||||
}],
|
|
||||||
plugins: [
|
plugins: [
|
||||||
json(),
|
json(),
|
||||||
|
eslint({
|
||||||
|
exclude: '**/*.json'
|
||||||
|
}),
|
||||||
nodeResolve(),
|
nodeResolve(),
|
||||||
commonjs(),
|
commonjs()
|
||||||
|
],
|
||||||
|
external: ['sortablejs', 'clusterize.js']
|
||||||
|
};
|
||||||
|
|
||||||
|
const baseCSS = {
|
||||||
|
input: 'src/style.css',
|
||||||
|
output: {
|
||||||
|
file: ''
|
||||||
|
},
|
||||||
|
plugins: [
|
||||||
postcss({
|
postcss({
|
||||||
extract: 'dist/frappe-datatable.css',
|
extract: true,
|
||||||
|
minimize: production,
|
||||||
plugins: [
|
plugins: [
|
||||||
nested(),
|
nested(),
|
||||||
cssnext()
|
cssnext()
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
],
|
]
|
||||||
external: ['sortablejs', 'clusterize.js']
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export default [
|
const devIIFE = merge(baseJS, {
|
||||||
dev,
|
output: {
|
||||||
Object.assign({}, dev, {
|
file: 'dist/frappe-datatable.js',
|
||||||
output: {
|
format: 'iife',
|
||||||
format: 'cjs',
|
name: 'DataTable'
|
||||||
file: 'dist/frappe-datatable.cjs.js'
|
}
|
||||||
}
|
});
|
||||||
})
|
|
||||||
];
|
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;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user