webpack-config-rentpath v1.5.3
webpack-config-rentpath
Shared webpack config across RentPath apps.
Installation
$ npm i --save webpack-config-rentpathUsage
The most minimal usage would be to create a webpack.config.js file in the root of your app with the following content:
module.exports = require('webpack-config-rentpath').configIf your app requires any webpack aliases (resolve.alias), create a separate file webpack-alias.config.js that exports the alias hash. The file will automatically be found and loaded by the base config. For example:
module.exports = {
"gallery": "gallery.js/dist",
"login": "login/dist",
"tealium": "tealium/dist/tagging.js"
};If your app requires Babel presets other than es2015, make sure to declare them in .babelrc in the root of your app. For example:
{ "presets": ["es2015", "react"] }If you require any other customizations, you will need to edit webpack.config.js such that it mutates the standard config before exporting it as described below.
Extended configuration
The config that this package exports is a base config reflecting RentPath's opinions. If your app has special needs, it can mutate the base config. For example:
var config = require('webpack-config-rentpath').config
// Add a loader
config.module.loaders.push({ test: /everestjs\/index.js$/, loader: "script-loader" })
// Add a plugin
var webpack = require('webpack')
config.plugins.push(new webpack.ContextReplacementPlugin(/moment[\/\\]locale$/, /en/))
module.exports = configIf you need to make environment-specific config changes, you can take advantage of the appEnv variable that webpack-config-rentpath exports in addition to config. The value of appEnv is a string obtained from the environment variable APPLICATION_ENVIRONMENT and defaults to "production" if missing. For example:
var webpackConfigRentpath = require('webpack-config-rentpath')
var config = webpackConfigRentpath.config
var appEnv = webpackConfigRentpath.appEnv
if(appEnv == 'development') {
// do some dev stuff
}
if(appEnv != 'development') {
// do some non-dev stuff
}
if(appEnv == 'production') {
// do some production stuff
}
module.exports = configScripts
npm run compile- Compiles the module to disk (~/lib).npm run compile:watch- Same asnpm run compilebut watches files for changes.npm run lint- Lints all files.npm run lint:fix- Lints all files and attempts to fix any issues.npm run test- Runs unit tests.npm run test:watch- Same asnpm testbut watches files for changes.npm run test:cov- Generates a test coverage report.
Commitizen
webpack-config-rentpath uses Commitizen to format commit messages.
- Install it globally
$ npm install -g commitizenOnce you are ready to commit, follow the familiar github workflow, with a slight change.
$ git add <files>
$ git czgit cz will bring up the Commitizen commit prompt, follow the instructions, and $ git push as usual.
This commit message format is used for semantic-release.