Add circle ci

This commit is contained in:
Anton Vakhrushev 2020-03-21 20:05:17 +03:00
parent 4bdd38ec15
commit 3aee2ac8ab
7 changed files with 40 additions and 49 deletions

19
.circleci/config.yml Normal file
View File

@ -0,0 +1,19 @@
version: 2.1
jobs:
test_and_publish:
docker:
- image: node:12.16-alpine
steps:
- checkout
- run: npm ci
- run: npm run format-check
- run: npm run test
- run: npm run build
- run: npm run build:dev
workflows:
version: 2
test_and_publish:
jobs:
- test_and_publish

2
.env
View File

@ -1 +1 @@
NODE_IMAGE=node:12.16.1-alpine3.11
NODE_IMAGE=node:12.16-alpine

1
.gitignore vendored
View File

@ -4,3 +4,4 @@ built/
coverage/
node_modules/
var/
.npmrc

6
package-lock.json generated
View File

@ -2016,12 +2016,6 @@
"type-detect": "^4.0.0"
}
},
"deepmerge": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz",
"integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==",
"dev": true
},
"default-require-extensions": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz",

View File

@ -13,8 +13,10 @@
"test": "mocha",
"coverage": "nyc mocha",
"build:dev": "webpack",
"build": "WEBPACK_ENV=build webpack",
"build": "webpack --env.production",
"format": "prettier --tab-width=4 --single-quote --trailing-comma es5 --write '{src,tests}/**/*.{ts,js}'",
"format-check": "prettier --tab-width=4 --single-quote --trailing-comma es5 --check '{src,tests}/**/*.{ts,js}'",
"format-wp": "prettier --tab-width=4 --single-quote --trailing-comma es5 --write 'webpack.config.js'",
"format-md": "prettier --write './*.md'"
},
"devDependencies": {
@ -22,7 +24,6 @@
"@types/mocha": "^7.0.2",
"@types/node": "^13.9.2",
"chai": "^4.2.0",
"deepmerge": "^2.2.1",
"mocha": "^7.1.1",
"nyc": "^15.0.0",
"prettier": "^1.19.1",

View File

@ -1,6 +1,6 @@
{
"compilerOptions": {
"outDir": "./built",
"outDir": "./dist",
"allowJs": true,
"target": "es5",
"module": "commonjs",

View File

@ -1,7 +1,18 @@
const path = require('path');
const merge = require('deepmerge');
const baseConfig = {
module.exports = (env = {}) => ({
mode: env.production ? 'production' : 'development',
entry: path.resolve(__dirname, 'src/index.ts'),
output: {
filename: env.production ? 'predictor.min.js' : 'predictor.js',
path: path.resolve(__dirname, 'dist'),
library: 'predictor',
libraryTarget: 'umd',
umdNamedDefine: true,
},
resolve: {
extensions: ['.ts', '.js'],
},
module: {
rules: [
{
@ -10,41 +21,6 @@ const baseConfig = {
loader: 'ts-loader',
},
},
]
],
},
};
const buildConfig = {
mode: 'production',
entry: path.resolve(__dirname, 'src/index.ts'),
output: {
filename: 'predictor.min.js',
path: path.resolve(__dirname, 'built'),
library: 'predictor',
libraryTarget: 'umd',
umdNamedDefine: true
},
resolve: {
extensions: ['.ts', '.js']
},
};
const devConfig = {
mode: 'development',
entry: path.resolve(__dirname, 'src/index.ts'),
output: {
filename: 'predictor.js',
path: path.resolve(__dirname, 'built'),
library: 'predictor',
libraryTarget: 'umd',
umdNamedDefine: true
},
resolve: {
extensions: ['.ts', '.js']
},
};
module.exports = merge(
baseConfig,
process.env.WEBPACK_ENV === 'build' ? buildConfig : devConfig
);
});