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
|
||||
docs/frappe-datatable.js
|
||||
docs
|
||||
@ -1,10 +1,4 @@
|
||||
{
|
||||
"ecmaFeatures": {
|
||||
"globalReturn": true,
|
||||
"jsx": true,
|
||||
"modules": true
|
||||
},
|
||||
|
||||
"parserOptions": {
|
||||
"ecmaVersion": 6,
|
||||
"sourceType": "module"
|
||||
|
||||
15
package.json
15
package.json
@ -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",
|
||||
|
||||
114
rollup.config.js
114
rollup.config.js
@ -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;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user