@cipscis/working-days
v1.2.0
Published
Calculations around working days for the Official Information Act.
Downloads
9
Readme
working-days
Install
Run npm install @cipscis/working-days
Usage
See Working Days documentation
Development
You will need to install Node.js before working on this package.
- Clone the repository using
git clone https://github.com/cipscis/working-days.git
. - Run
npm install
to install development dependencies. - Create a
.env
file. - Run
npm start
to run the local server and watch CSS and JS files for changes.
This project creates the following npm scripts:
npm run server
runs a Node.js server on the port specified in the.env
file, using Express.npm run build
compiles CSS files using gulp-sass, then compiles TypeScript and bundles JavaScript using Webpack.npm run watch
first runs thebuild
task, then watches the relevant directories and reruns thebuild
task if it sees any changes.npm run lintCss
lints all SCSS files using stylelint.npm run lintJs
lints all JavaScript and TypeScript files using eslint.npm run lint
runs thelintCss
andlintJs
scripts.npm start
runs both theserver
andwatch
tasks simultaneously.npm test
lints and compiles any TypeScript, then runs any configured test suites using Jasmine.npm run prepare
first removes directories containing compiled files, then runs thetest
script. You should never need to run this script manually, theprepare
script runs automatically.
Usually, you will just want to run npm start
.
.env
The .env
file contains the following environment variables:
PROJECT_NAME
(string)
If present, used by Express to set up redirects for emulating GitHub Pages.
MODE
(string 'development' | 'production')
Used by Webpack to determine what optimisations to use and how to generate sourcemaps.
PORT
(int)
Used by Express to determine which port to use when running a local Node.js server.
An example .env
file you can use for development is:
PROJECT_NAME = "working-days"
MODE = "development"
PORT = "8080"
This file is intended to differ from environment to environment, so it is ignored by Git.
Dependencies
None.
Dev Dependencies
Development
These dependencies are used when working on the project locally.
Node.js: Runtime environment
npm: Package manager
Gulp: Task runner
TypeScript: JavaScript extension for static type checking
Jasmine: Testing framework
- @types/jasmine: TypeScript types for Jasmine
- gulp-sass: Using the
sass
compiler with Gulp
- gulp-sass: Using the
Webpack: For JavaScript dependency management, used with Gulp
ts-loader: For compiling TypeScript using Webpack
resolve-typescript-plugin: For using ES Module syntax with Webpack's
ts-loader
Express: Running a Node.js server, accessed at
http://localhost:<PORT>
Concurrently: Running server and development build tasks concurrently
eslint: Linting TypeScript files
@typescript-eslint/eslint-plugin: Allows
eslint
to lint TypeScript@typescript-eslint/parser: Allows
eslint
to parse TypeScript
stylelint: Linting CSS
- stylelint-config-recommended-scss: Allows
stylelint
to lint SCSS files, and provides a base set of SCSS linting rules
- stylelint-config-recommended-scss: Allows
Deploy
These dependencies are used for deploying the project to GitHub Pages.
checkout: Used to check out the repository to a workspace so it can be built
Deploy to GitHub Pages: Used to deploy the project to GitHub pages once it has been built