A DoubleClick For Publishers implementation
"Google's DoubleClick for Publishers (DFP) ad management solution is designed to meet the growing needs of publishers."
Just clone the repo and install the necessary node modules.
$ git clone https://github.com/Haaretz/dfp.git dfp $ cd dfp $ npm install # Install Node modules listed in ./package.json $ npm run build # Build a minified and a non-minified version of the library
npm run build- Build task that generate a minified and a non-minified script (defaults to jspm build)
npm run build:rollup- Build task that generate a minified and a non-minified script (using the old rollup config)
npm run build:jspm- Build task that generate a minified and a non-minified script (using the new jspm config [default])
npm run build:prod- Build task that generate a production bundle (using rollup)
npm run build:jspm:prod- Build task that generate a production bundle (using jspm)
npm run build:dev- Build task that generate a development bundle (using rollup)
npm run build:jspm:dev- Build task that generate a development bundle (using jspm)
npm run build:es6- Build task that generate and preserves ES6 imports and exports into a ES2015 development bundle (using rollup)
npm run build:jspm:es6- Build task that generate and preserves ES6 imports and exports into a ES2015 development bundle (using jspm)
npm run lint:source- Lint the source
npm run lint:tests- Lint the unit tests
npm run clean- Remove the coverage report - and the dist folder
npm run test- Runs unit tests for both server and the browser
npm run test:browser- Runs the unit tests for browser
npm run test:server- Runs the unit tests on the server
npm run karma:chrome- Runs the unit tests for browser with Chrome
npm run karma:phantom- Runs the unit tests for browser with PhantomJS
npm run karma:ie- Runs the unit tests for browser with Internet Explorer
npm run karma:firefox- Runs the unit tests for browser with Firefox
npm run watch:server- Run all unit tests for server & watch files for changes
npm run watch:browser- Run all unit tests for browser & watch files for changes
npm run packages- List installed packages
npm run package:purge- Remove all dependencies
npm run package:reinstall- Reinstall all dependencies
npm run package:check- shows a list over dependencies with a higher version number then the current one - if any
npm run package:upgrade- Automatically upgrade all devDependencies & dependencies, and update package.json
npm run package:dev- Automatically upgrade all devDependencies and update package.json
npm run package:prod- Automatically upgrade all dependencies and update package.json
npm run browser- runs browser unit tests in the browser. All of your unit tests get bundled automatically.
npm run commit- commit latest changes to the Master branch on Github.
This project uses Mocha to run your unit tests, it uses Karma as the test runner, it enables the feature that you are able to render your tests to the browser (e.g: Firefox, Chrome etc.).
To add a unit test, simply create a
.spec.browser.js or a
.spec.server.js file inside the
~../src/**/*__tests__*/**/ folder. Karma will pick up on these files automatically, and Mocha and Chai will be available within your unit tests without the need to import them.
To run unit tests only for the browser ( client), or for the server, create either a
~/spec.server file inside the same folder.
To run the tests in the project, just simply
npm run test for both server and client unit tests, or
npm run test:server. for server or
npm run test:browser. for browser tests.
To keep watching the common test suites that you are working on, simply do
npm run watch:browser or
npm run watch:server.
Adding other test files
- Browser:, simply open up the
karma.conf.jsfile in the
~/configfolder and add your files to the
- NodeJS: open up the
mocha.optsfile in the
~/configfolder and add your files to the top of the file.
Note! Karma runs both browser and NodeJS unit tests by default.
To run your unit tests in the browser, do
npm run browser, and open
port 8080. Hot module replacement (WDS) are supported.
This library is set up to integrate with Coveralls, and will automatically publish your coverage report to coveralls.io if you have created an account there.
JSPM is used as the (primary) library bundler. It produces a cleaner and more lightweight source code then what you get with for example webpack and browserify.
Rollup is used as the (secondary) library bundler. It produces a cleaner and more lightweight source code then what you get with for example webpack and browserify.
This repository has some nice features built-in to always make sure your dependency tree are up to date.
To check for the latest dependencies, simply run
npm run package:check.
If you want to update your packages, you can simply do
npm run package:upgrade.
package.json will be automatically updated so make sure you have saved your changes before running this.
To reinstall all packages, do
npm run package:reinstall, and to remove all packages
npm run package:purge.
This boilerplate uses a pre-commit hook to ensure that your npm test (or other specified scripts) passes before you can commit your changes. This all conveniently configured in your package.json.
This boilerplate project uses ESLint to lint your source. To change the rules, edit the .eslintrc file in the root directory, respectively.
Download the package, and run this from the command line:
MIT © Haaretz Ltd.