Skip to content

Commit

Permalink
feat: convert to an npm module
Browse files Browse the repository at this point in the history
BREAKING CHANGE: now an npm module and not Bower compatible.

- Switch to Angular commit style
- Setup semantic release
- Convert to ES2015 with babel
  • Loading branch information
Tom Ashworth committed Nov 4, 2015
1 parent 1183b00 commit 38865ae
Show file tree
Hide file tree
Showing 22 changed files with 460 additions and 383 deletions.
3 changes: 0 additions & 3 deletions .bowerrc

This file was deleted.

18 changes: 18 additions & 0 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"parser": "babel-eslint",
"extends": [
"standard"
],
"env": {
"jasmine": true
},
"rules": {
// overrides of the standard style
"curly": [2, "all"],
"indent": [2, 4],
"max-len": [2, 100, 4],
"semi": [2, "always"],
"space-before-function-paren": [2, {"anonymous": "always", "named": "never"}],
"wrap-iife": [2, "outside"]
}
}
2 changes: 0 additions & 2 deletions .gitattributes

This file was deleted.

2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
bower_components
node_modules
dist/
16 changes: 15 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,20 @@
sudo: false
language: node_js
cache:
directories:
- node_modules
notifications:
email: false
node_js:
- "0.10"
- '4'
before_install:
- npm i -g npm@^2.0.0
before_script:
- npm prune
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start
after_success:
- npm run semantic-release
branches:
except:
- "/^v\\d+\\.\\d+\\.\\d+$/"
2 changes: 2 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ the developers managing and developing this open source project. In return,
they should reciprocate that respect in addressing your issue or assessing
patches and features.

By contributing to this repository, including using the issue tracker, you agree to adhere to Twitter's [Open Source Code of Conduct][coc].


## Using the issue tracker

Expand Down
24 changes: 0 additions & 24 deletions Gruntfile.js

This file was deleted.

14 changes: 5 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ This construct supports trees of components because, if the child also mixes in
## Installation

```bash
bower install --save flight-with-child-components
npm install --save flight-with-child-components
```

## Example
Expand Down Expand Up @@ -44,17 +44,13 @@ function parentComponent() {

## Development

Install the Node.js and client-side dependencies by running the following
commands in the repo's root directory.
To develop this module, clone the repository and run:

```bash
npm install
```
$ npm install && npm test
```

To continuously run the tests in Chrome during development, just run:

```bash
npm run watch-test
If the tests pass, you have a working environment. You shouldn't need any external dependencies.
```
## Contributing to this project
Expand Down
21 changes: 0 additions & 21 deletions bower.json

This file was deleted.

9 changes: 9 additions & 0 deletions config/constants.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
var path = require('path');

var ROOT_DIRECTORY = path.resolve(__dirname, '..');
var BUILD_DIRECTORY = path.resolve(ROOT_DIRECTORY, 'dist');

module.exports = {
ROOT_DIRECTORY: ROOT_DIRECTORY,
BUILD_DIRECTORY: BUILD_DIRECTORY
};
48 changes: 48 additions & 0 deletions config/karma.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
'use strict';

var constants = require('./constants');
var webpackConfig = require('./webpack.config.test');
// entry is determined by karma config 'files' array
webpackConfig.entry = {};

module.exports = function (config) {
config.set({
basePath: constants.ROOT_DIRECTORY,
browsers: [ process.env.TRAVIS ? 'Firefox' : 'Chrome' ],
browserNoActivityTimeout: 60000,
client: {
captureConsole: true,
useIframe: true
},
files: [
'node_modules/jquery/dist/jquery.min.js',
'node_modules/jasmine-jquery/lib/jasmine-jquery.js',
'src/specs.context.js'
],
frameworks: [
'jasmine'
],
plugins: [
'karma-chrome-launcher',
'karma-firefox-launcher',
'karma-jasmine',
'karma-sourcemap-loader',
'karma-webpack'
],
preprocessors: {
'src/specs.context.js': [ 'webpack', 'sourcemap' ]
},
reporters: [ 'dots' ],
singleRun: true,
webpack: webpackConfig,
webpackMiddleware: {
stats: {
assetsSort: 'name',
colors: true,
children: false,
chunks: false,
modules: false
}
}
});
};
46 changes: 46 additions & 0 deletions config/webpack.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
var webpack = require('webpack');

var DedupePlugin = webpack.optimize.DedupePlugin;
var OccurenceOrderPlugin = webpack.optimize.OccurenceOrderPlugin;
var UglifyJsPlugin = webpack.optimize.UglifyJsPlugin;

var plugins = [
new DedupePlugin(),
new OccurenceOrderPlugin()
];

if (process.env.NODE_ENV === 'publish') {
plugins.push(
new UglifyJsPlugin({
compress: {
dead_code: true,
drop_console: true,
screw_ie8: true,
warnings: true
}
})
);
}

module.exports = {
entry: './src',
module: {
loaders: [
{
test: /\.jsx?$/,
exclude: /node_modules/,
loader: 'babel-loader'
}
]
},
resolve: {
alias: {
flight: 'flightjs'
}
},
output: {
path: './dist',
filename: 'flight-with-child-components.js'
},
plugins: plugins
};
11 changes: 11 additions & 0 deletions config/webpack.config.publish.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
var constants = require('./constants');
var baseConfig = require('./webpack.config');

module.exports = Object.assign(baseConfig, {
output: {
library: 'flight-with-child-components',
filename: 'flight-with-child-components.js',
libraryTarget: 'umd',
path: constants.BUILD_DIRECTORY
}
});
5 changes: 5 additions & 0 deletions config/webpack.config.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
var baseConfig = require('./webpack.config');

module.exports = Object.assign(baseConfig, {
devtool: 'inline-source-map'
});
57 changes: 0 additions & 57 deletions karma.conf.js

This file was deleted.

Loading

0 comments on commit 38865ae

Please sign in to comment.