Commit ebb009f7 by Ari Rizzitano

basic build

parent f9221d99
...@@ -9,7 +9,11 @@ ...@@ -9,7 +9,11 @@
"react/no-array-index-key": "off" "react/no-array-index-key": "off"
}, },
"settings": { "settings": {
"import/resolver": "webpack" "import/resolver": {
"node": {
"extensions": [".js", ".jsx"]
}
}
}, },
"env": { "env": {
"jest": true "jest": true
......
...@@ -65,6 +65,7 @@ ...@@ -65,6 +65,7 @@
"eslint-import-resolver-webpack": "^0.8.1", "eslint-import-resolver-webpack": "^0.8.1",
"eslint-plugin-jsx-a11y": "^5.1.0", "eslint-plugin-jsx-a11y": "^5.1.0",
"eslint-plugin-react": "^7.1.0", "eslint-plugin-react": "^7.1.0",
"extract-text-webpack-plugin": "^3.0.1",
"file-loader": "^1.1.4", "file-loader": "^1.1.4",
"greenkeeper-lockfile": "^1.7.1", "greenkeeper-lockfile": "^1.7.1",
"husky": "^0.14.1", "husky": "^0.14.1",
......
import asInput from './asInput';
import Button from './Button'; import Button from './Button';
import CheckBox from './CheckBox'; import CheckBox from './CheckBox';
import Dropdown from './Dropdown'; import Dropdown from './Dropdown';
import InputSelect from './InputSelect'; import InputSelect from './InputSelect';
import InputText from './InputText'; import InputText from './InputText';
import Modal from './Modal';
import StatusAlert from './StatusAlert';
import Table from './Table';
import Tabs from './Tabs'; import Tabs from './Tabs';
import RadioButtonGroup, { RadioButton } from './RadioButtonGroup'; import RadioButtonGroup, { RadioButton } from './RadioButtonGroup';
import Hyperlink from './Hyperlink'; import Hyperlink from './Hyperlink';
export { export {
asInput,
Button, Button,
CheckBox, CheckBox,
Dropdown, Dropdown,
InputSelect, InputSelect,
InputText, InputText,
Modal,
StatusAlert,
Table,
Tabs, Tabs,
RadioButtonGroup, RadioButtonGroup,
RadioButton, RadioButton,
......
const path = require('path'); const path = require('path');
const MinifyPlugin = require('babel-minify-webpack-plugin'); const MinifyPlugin = require('babel-minify-webpack-plugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const env = process.env.NODE_ENV || 'dev'; module.exports = {
const base = {
devtool: 'source-map', devtool: 'source-map',
entry: { entry: {
polyfill: 'babel-polyfill', polyfill: 'babel-polyfill',
main: path.resolve('./docs/App.js'), main: path.resolve('./src/index.js'),
}, },
output: { output: {
filename: 'bundle.js', filename: 'dist/index.js',
path: path.resolve('./docs'), library: 'paragon',
libraryTarget: 'umd', libraryTarget: 'umd',
}, },
resolve: { resolve: {
extensions: ['.js', '.jsx'], extensions: ['.js', '.jsx'],
}, },
plugins: [ plugins: [
new ExtractTextPlugin('dist/paragon.min.css'),
new MinifyPlugin(), new MinifyPlugin(),
], ],
module: { module: {
...@@ -37,78 +37,52 @@ const base = { ...@@ -37,78 +37,52 @@ const base = {
}, },
{ {
test: /\.scss$/, test: /\.scss$/,
use: [ use: ExtractTextPlugin.extract({
{ use: [
loader: 'style-loader', {
}, loader: 'css-loader',
{ options: {
loader: 'css-loader', modules: true,
options: { localIdentName: '[name]__[local]___[hash:base64:5]',
modules: true, },
localIdentName: '[name]__[local]___[hash:base64:5]',
}, },
}, {
{ loader: 'sass-loader',
loader: 'sass-loader', options: {
options: { data: '@import "paragon-reset";',
data: '@import "paragon-reset";', includePaths: [
includePaths: [ path.join(__dirname, './src/utils'),
path.join(__dirname, './src/utils'), path.join(__dirname, './node_modules'),
path.join(__dirname, './node_modules'), ],
], },
}, },
}, ],
], }),
}, },
], ],
}, },
}; externals: [{
react: {
const additionalConfig = { root: 'React',
// production builds the library for external consumption commonjs2: 'react',
production: { commonjs: 'react',
entry: { amd: 'react',
Dropdown: path.resolve('./src/Dropdown.jsx'),
},
output: {
path: path.resolve('./dist'),
filename: '[name].js',
library: 'paragon',
libraryTarget: 'umd',
},
externals: [{
react: {
root: 'React',
commonjs2: 'react',
commonjs: 'react',
amd: 'react',
},
},
{
'react-dom': {
root: 'ReactDOM',
commonjs2: 'react-dom',
commonjs: 'react-dom',
amd: 'react-dom',
},
}, },
{ },
'react-addons-transition-group': { {
commonjs: 'react-addons-transition-group', 'react-dom': {
commonjs2: 'react-addons-transition-group', root: 'ReactDOM',
amd: 'react-addons-transition-group', commonjs2: 'react-dom',
root: ['React', 'addons', 'TransitionGroup'], commonjs: 'react-dom',
}, amd: 'react-dom',
}, },
{
'react-addons-css-transition-group': {
commonjs: 'react-addons-css-transition-group',
commonjs2: 'react-addons-css-transition-group',
amd: 'react-addons-css-transition-group',
root: ['React', 'addons', 'CSSTransitionGroup'],
},
}],
}, },
{
'react-transition-group': {
root: 'ReactTransitionGroup',
commonjs2: 'react-transition-group',
commonjs: 'react-transition-group',
amd: 'react-transition-group',
},
}],
}; };
module.exports = Object.assign(base, additionalConfig[env]);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment