1. grumbler-scripts
Javascript module template.
grumbler-scripts
Package: grumbler-scripts
Created by: krakenjs
Last modified: Sat, 18 Jun 2022 14:20:13 GMT
Version: 6.0.0
Downloads: 137
Repository: https://github.com/krakenjs/grumbler

Install

npm install grumbler-scripts
yarn add grumbler-scripts

Grumbler Scripts

Shared scripts for grumbler based modules.

Package.json scripts

 "scripts": {
    "lint": "eslint src/ test/ *.js",
    "flow-typed": "flow-typed install",
    "flow": "flow",
    "flow:build": "flow gen-flow-files ./src/index.js --out-dir ./dist/module",
    "karma": "cross-env NODE_ENV=test babel-node --plugins=transform-es2015-modules-commonjs ./node_modules/.bin/karma start",
    "babel": "babel src/ --out-dir dist/module",
    "webpack": "babel-node --plugins=transform-es2015-modules-commonjs ./node_modules/.bin/webpack --progress",
    "test": "npm run lint && npm run flow-typed && npm run flow && npm run karma",
    "build": "npm run test && npm run babel && npm run webpack && npm run flow:build",
    "release": "npm run release:patch",
    "release:patch": "./node_modules/grumbler-scripts/publish.sh patch",
    "release:minor": "./node_modules/grumbler-scripts/publish.sh minor",
    "release:major": "./node_modules/grumbler-scripts/publish.sh major",
    "clean": "rimraf dist coverage",
    "reinstall": "rimraf flow-typed && rimraf node_modules && npm install && flow-typed install"
}

ESLint

.eslintrc.js

Node

 /* @flow */

module.exports = {
    'extends': './node_modules/grumbler-scripts/config/.eslintrc-node.js'
};

Browser

 /* @flow */

module.exports = {
    'extends': './node_modules/grumbler-scripts/config/.eslintrc-browser.js'
};

Babel

.babelrc

Node

 {
    "extends": "grumbler-scripts/config/.babelrc-node"
}

Browser

 {
    "extends": "grumbler-scripts/config/.babelrc-browser"
}

Webpack

webpack.config.js

 /* @flow */

import { getWebpackConfig } from 'grumbler-scripts/config/webpack.config';

const FILE_NAME = 'mylibrary';
const MODULE_NAME = 'mylibrary';

export let WEBPACK_CONFIG = getWebpackConfig({
    filename:   `${ FILE_NAME }.min.js`,
    modulename: MODULE_NAME,
    minify:     true
});

export default [ WEBPACK_CONFIG ];

Karma

karma.conf.js

 /* @flow */

import { getKarmaConfig } from 'grumbler-scripts/config/karma.conf';
import { getWebpackConfig } from 'grumbler-scripts/config/webpack.config';

export default (karma : Object) =>
    karma.set(getKarmaConfig(karma, {
        basePath: __dirname,
        webpack:  getWebpackConfig()
    }));

Dependencies

@babel/cli: ^7@babel/core: ^7@babel/eslint-parser: ^7.16.0@babel/node: ^7.0.0@babel/plugin-proposal-class-properties: ^7.10.4@babel/plugin-proposal-decorators: ^7.10.5@babel/plugin-syntax-dynamic-import: ^7@babel/plugin-syntax-object-rest-spread: ^7@babel/plugin-transform-react-jsx: ^7@babel/plugin-transform-runtime: ^7.11.0@babel/polyfill: ^7@babel/preset-env: ^7@babel/preset-flow: ^7.10.4@babel/preset-react: ^7@babel/preset-typescript: ^7.14.5@babel/register: ^7.10.5@babel/runtime: 7.12.13@typescript-eslint/eslint-plugin: ^5.2.0@typescript-eslint/parser: ^5.2.0babel-jest: ^27.3.1babel-loader: ^8.1.0babel-plugin-add-module-exports: ^1.0.0babel-plugin-flow-runtime: ^0.19.0babel-plugin-istanbul: ^6.0.0babel-plugin-react-scoped-css: ^1.0.0babel-plugin-syntax-async-functions: ^6.13.0babel-plugin-transform-class-properties: ^6.24.1babel-plugin-transform-es2015-for-of: ^6.23.0babel-plugin-transform-es2015-modules-commonjs: ^6.26.2babel-plugin-transform-es3-member-expression-literals: ^6.22.0babel-plugin-transform-es3-property-literals: ^6.22.0babel-plugin-transform-flow-strip-types: ^6.22.0cache-loader: ^4.1.0circular-dependency-plugin: ^5.0.2cross-env: ^7.0.3css-loader: ^3.4.2eslint: ^8.1.0eslint-find-rules: ^4.0.0eslint-friendly-formatter: ^4.0.1eslint-import-resolver-typescript: ^2.5.0eslint-plugin-compat: ^3.13.0eslint-plugin-const-immutable: ^2.1.0eslint-plugin-eslint-comments: ^3.2.0eslint-plugin-flowtype: ^8.0.3eslint-plugin-import: ~2.25.2eslint-plugin-promise: ^5.1.1eslint-plugin-react: 7.27.0eslint-plugin-security: ^1.4.0eslint-plugin-unicorn: ^38.0.1flow-bin: 0.164.0flow-runtime: ^0.17.0flow-typed: 3.6.1fs-extra: ^9.0.1hard-source-webpack-plugin: ^0.13.1imports: ^1.0.0in-publish: ^2.0.0isomorphic-style-loader: ^5.1.0istanbul-instrumenter-loader: ^3.0.0jest: ^27.3.1karma: ^6.3.8karma-chrome-launcher: ^3.1.0karma-commonjs: ^1.0.0karma-coverage: ^2.0.1karma-firefox-launcher: ^2.1.2karma-ie-launcher: ^1.0.0karma-mocha: ^2.0.1karma-safari-launcher: ^1.0.0karma-sinon-chai: ^2.0.2karma-sourcemap-loader: ^0.3.7karma-spec-reporter: 0.0.32karma-webpack: 4.0.0-rc.3mocha: ^9.1.3node-cleanup: ^2.1.2node-sass: ^4.13.1npm-check-updates: ^12.0.2npx: ^10.2.1process-exists: ^4.0.0querystring: ^0.2.0raw-loader: ^4.0.0rimraf: ^3.0.2rmfr: ^2.0.0sass-loader: ^8.0.2scoped-css-loader: ^1.0.0semver: ^7.1.1terser-webpack-plugin: ^2.3.2text-loader: 0.0.1typescript: ^4.3.5webpack: ^4.44.1webpack-bundle-analyzer: ^3.8.0webpack-cli: ^3.3.12webpack-dev-server: ^3.1.14yargs: ^17.2.1

RELATED POST

10 Must-Know Windows Shortcuts That Will Save You Time

10 Must-Know Windows Shortcuts That Will Save You Time

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Navigating AWS Networking: Essential Hacks for Smooth Operation

Navigating AWS Networking: Essential Hacks for Smooth Operation

Achieving Stunning Visuals with Unity's Global Illumination

Achieving Stunning Visuals with Unity's Global Illumination

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code