- 2e7d0ba [fixed]
React.PropTypes
is deprecated in favor of the"prop-types"
module - edaa3ef [fixed] the
isNode
check for when theprocess
variable exists in the browser
- f29f23d [fixed] favor lodash over native methods
- 41c8c95 [fixed] favor
eslint-disable-next-line
over disabling and then re-enabling a rule manually - a30d433 [fixed]
JS.typecheck
to disregard the contents of stderr when executing the flow typechecker, because it prints errors to stdout - 5488581 [fixed] the type signature of the
Documentation
constructoroptions
argument - e0e030a [changed] constructor signatures of
Compiler
,JSCompiler
,SASSCompiler
,JS
andSASS
to allow for additional options to be passed more easily;JSCompiler
now supports the"library"
and"libraryTarget"
options from webpack
- 1090c8f [changed] display relative file paths when logging errors
- 5802023 [fixed] updated dependencies
- 7d08bf9 [fixed] renamed type
Iterable
->IterableCollection
in the lodash interface file to make it work with Flow >=0.38.0 - 8da6ce7 [fixed] switched from
no-invalid-this
andsemi
ESLint rules to the same rules in theeslint-plugin-babel
package
- da39703 [fixed] simplified regexp pattern for error detection in
NativeProcess
- 528c86d [fixed] used
cross-spawn
instead ofchild_process
inNativeProcess
for compatibility with the Windows operating system
- 50b24dd [fixed] in development mode there is no longer a separate source map file (for performance reasons), do not attempt to read it from
memory-fs
- 9895f9e [fixed] typo
- f367a00 [added] the
livereload
helper function - 6f1d890 [fixed] added a temporary hack/fix for
react-hot-loader
, while the stable version v3 is not out yet - 60a0dc8 [fixed] link to the license in readme
- 7c8ae19 [changed] created a new module
util
; made thewebpack
module private - e0e7a60 [added] function
logSequentialSuccessMessage
to thelogger
module - 1e86281 [fixed] use cheaper
"eval-source-map"
in development mode when constructing a webpack compiler for faster rebuilds - a507dbb [fixed] removed duplicated declaration for
defaultConfigFile
- 5520224 [added] the
watch
method to theDocumentation
class
- d31bb2b [added] the "Troubleshooting" section to README.md
- 2e62ccb [changed] added the check for the "relative_root" watchman server capability; also added client disconnection on error
- b4de55c [fixed] updated default jsdoc configuration
- ccc6661 [fixed] a very long standing issue (it basically existed from the very beginning) by ignoring ".babelrc" files and enabling the ES2015 module syntax transpilation; tree shaking will be available again when both
webpack
2.3 andwebpack-hot-loader
3.0 come out - 5396dbb [fixed] added a link to the Changelog to README.md
- fde1a96 [fixed] undated dependencies
- d5f38d2 [fixed] removed the unreliable
webpack-combine-loaders
that brokeJSCompiler#fe
in v6 - 6d21f9e [fixed] minor documentation issue
- 2402d0e [fixed] documentation tweaks
- 38b5f13 [changed] enabled the
template-tag-spacing
ESLint rule - 15de846 [fixed] updated dependencies
- bbafa14 [fixed] added missing "keywords" to package.json
- 7957472 [fixed] clarified the Watchman prerequisite in README.md
- 9c06c47 [fixed] typo in README, increased the minimally required Node.js verion to 6.9.5
- 87854f3 [added] the
addPostcssPlugins
method toSASSCompiler
- e3bdece [fixed] updated the interface declaration for
JSLint
andSASSLint
- a7faf64 [fixed] updated autoprefixer
- e56d58c [fixed] flowtype - prefer shorthand array
- 33a0c97 [fixed] small formatting issues in commentsOnly.js
- ebe1b12 [fixed]
logger.logError
is now truly cross platform and cross browser, with a cleaner stack trace - 42d1413 [changed]
NativeProcess
convertsstderr
strings that look like the output ofError.prototype.toString()
into actual error instances, preserving all of the underlying information - aae39ea [fixed]
NativeProcess
no longer converts the error object "toString()" in the process "error" event handler - 6b6e2ff [changed] got rid of the "config" directory, moved its contents into the root directory, renamed the plugin to
commentsOnly
, as its only purpose is to replicate and enhance the standard plugin with the same name
- 8f1c984 [fixed] minor syntax issues
- cc32687 [fixed] updated dependencies
- 4a5d4f3 [fixed] Github Pages can now read a subfolder contents on a
master
branch, no need forgh-pages
anymore
- 053de5d [changed]
JSLint
andSASSLint
(also affectsJS
andSASS
) constructors now both accept a single argument -configFile
, which is a path to the respective configuration files ofESLint
andstylelint
. They both support extends, so any other configuration options are redundant.
- 3da0682 [fixed] escape the Windows directory separator in the
logger
module - 544f08b [fixed] updated dependencies
- 91ffe22 [fixed] updated the "files" entry in package.json
- 323a94e [fixed] updated autoprefixer
- 282e763 [fixed] regression in v6.0.0, which could cause
Compiler
to gzip compress in development mode
- e2b3f6c [fixed]
logger
module docs
- 099ccd4 [fixed] updated docs
- 2eff57a [fixed] updated dependencies
- c793ee3 [added]
findBinary
function; switched Flow from a global prerequisite to a localwebcompiler
managed dependency - "flow-bin" (yay!) - b77144e [fixed] typo in
consoleStyles.red
definition - c4f9f5b [fixed] increased the requirement for the Node.js version to >=6.9.4 (Latest LTS: Boron), from now on
webcompiler
will always require at least the latest LTS version of Node.js - 8f4fad2 [fixed] updated tests
- 8b79091 [changed] extracted the common webpack related logic into a single centalized
webpack
module - 91d2857 [changed] support only Node.js versions >=6.8.1, to remove the need to transpile ES2015 syntax on Node.js almost completely
- 47a689d [fixed] use destructuring instead of
[0]
to retrieve the first element of an array - 5669a2e [fixed] added
getClientRects
mock towindow.document.createRange
forCodeMirror
in thehighlight
module - b54893e [changed] switched from scss-lint to stylelint, no more ruby dependencies (yay!)
- 0ce882d [fixed] only use the compressed outputStyle for sass, as mested is meaningless with source maps always enabled
- 836dd03 [changed] renamed .eslintrc.yml -> .eslintrc.yaml, to use the standard and recommended extension for YAML files
- cf14cab [changed]
Documentation
only uses the local project leveljsdoc
executable, and throws if it is not found ignoring the global one, for a more fine-grained control over versioning - 61e77ad [fixed] documentation of
Compiler#gzip
- bff7641 [added] the
logger
module, the isomorphic wrapper forconsole.log
with ANSI 16 styles - 8d12a47 [changed] switched to docdash as the new default documentation template
- 502fcdb [fixed] updated dependencies; enabled the following
ESLint
rules -flowtype/boolean-style
,flowtype/generic-spacing
,flowtype/semi
,flowtype/space-before-generic-bracket
,flowtype/union-intersection-spacing
,react/no-unused-prop-types
,react/style-prop-object
andclass-methods-use-this
- bf56b08 [fixed] updated dependencies; removed the deprecated
eslint-plugin-flow-vars
in favor ofeslint-plugin-flowtype
; removed the deprecated babel presets made unnecessary by[email protected]
; added interface definitions for all of thelodash
functions (including aliases)
- b01a743 [fixed] updated dependencies; added
extends
forplugin:react/recommended
andplugin:lodash/recommended
to.eslintrc.yml
; sorted configured rules alphabetically
- 48dd607 [changed] renamed: config/scsslint.yml -> .scss-lint.yml - a useful convention for when you want editor integration for
scss-lint
. If you don't, this change is inconsequential for you. However, if you do, and since.scss-lint.yml
does not have an extend directive, you will need to symlink to this file directly; run the following command from the root directory of your project -ln -s "./node_modules/webcompiler/.scss-lint.yml" .scss-lint.yml
.
- a33ef4d [added] Font Awesome to the list of default import paths of
SASSCompiler
- 0aca3bd [fixed]
SASSLint
to adjust to the fact thatscss-lint
no longer prints errors to stderr, which also makesSASS#lint
obsolete - 70c3625 [removed]
webpack.NoErrorsPlugin
from DevServer, as it is no longer required byreact-hot-loader
- 28318ef [added] the
configureApplication
option toDevServer
- 730b979 [fixed]
Compiler#fsRead
- do not proceed to reading the ".map" file after failing to read the main file
- c84575a [fixed]
Compiler#save
now skips the final write if the contents of the file have not changed since the previous write, which means that the last modified timestamp of the file is not altered unnecessarily - 1b9ea9f [changed]
DevServer
api to better reflect the api of the underlyingWebpackDevServer
; sass compilation is now optional
- d2cc0aa [fixed] lint the interface files
- 8310319 [added]
DefinePlugin
to the list of production plugins ofJSCompiler#fe
- e1879a2 [changed]
JS#compiler
andSASS#compiler
are now public - 32d4b65 [changed] disabled UglifyJs compressor warnings
- a114b29 [fixed] documentation examples for
DevServer#watchSASS
andDevServer#run
- 9da3694 [removed] the
watchDir
argument fromDevServer#watchSASS
andDevServer#run
, opting into watching the CWD instead - 60d2bb8 [added] bootswatch to the list of default import paths of
SASSCompiler
- 90f5814 [added]
webpack.optimize.OccurrenceOrderPlugin
to the list of production plugins ofJSCompiler#fe
- c5b2145 [fixed] updated dependencies
- d572c23 [fixed] updated dependencies
- 4698324 [added]
rest-spread-spacing
ESLint rule;lodash/isFinite
,lodash/toLower
andlodash/includes
interface declarations
- e5d7dc4 [added] the
json
loader toDevServer
, interface declaration forlodash/debounce
andReact.PropTypes.number
- 43e85ef [added] instanceOf PropType definition
- c7b4ed0 [fixed] enabled the
react/jsx-uses-react
,react/jsx-no-target-blank
andreact/no-is-mounted
ESLint rules
- 757f44f [fixed] npm package must include the
.eslintrc.yml
and the.babelrc
files
- 5578892 [fixed] compile in loose mode by default. Better tree shaking for webpack
- d0e5692 [changed] split the
Markup
class into 3 distinct modules -jsx
,markdown
andhighlight
. Added support for plain-object representations of React elements for easy serialization/unserialization.
- 4124ac4 [changed] the
watch
function callback now accepts one argument - an object which describes what files were changed
- f02346f [fixed] removed the
marked
dependency
- 1249e1a [changed] replaced
marked
withremarkable
- 51e655d [fixed] updated dependencies
- 4e525a9 [removed] transformer support from the
Markup
class; updated the library definition file and the project dependencies
- d864013 [fixed] updated project dependencies
- 5f9b134 [added]
Markup.highlightHTML
andMarkup.highlightJSX
- 927f2d8 [fixed] made webpack ignore the "fs" module;
Markup.flatten
removes falsy values
- 15b6f67 [fixed] updated
eslint-plugin-react
dependency
- c7d16ba [fixed] updated
babel-eslint
andlodash
- 132ed72 [fixed] updated ESLint to v2.1.0
- bc1e3f3 [changed] updated ESLint to v2; removed eslint-config-airbnb; better and faster linting for javascript
- 18f7807 [fixed] made travis only watch the master branch; removed a duplicate eslint rule
- c398d90 [added]
private Markup.markdownToUnwrappedHTML
- If a simple single line string is passed to the Markdown parser it thinks that it is a paragraph (it sort of technically is) and unnecessarily wraps it into<p></p>
, which most often is not the desired behavior. This function fixes that.
- 50ac89a [fixed]
Markup
- trim the input and output where necessary - 9ce8f3e [fixed] minor documentation updates; updates to the lodash interface file
- f9346b1 [fixed] updated dependencies
- 4a044cf [added] the
Markup.flatten
method - 02c9096 [fixed] the interface declaration for
Markup
to make the input value forhtmlToJSX
,markdownToHTML
andmarkdownToJSX
optional
- 1dbe099 [fixed] handle empty input in the
Markup
class; updated dependencies
- 47cbb2d [fixed] updated cheerio dependeny to 0.20.0
- 2071e3a [fixed] Markup class definition in the webcompiler.js interface file
- f42ab3d [added] the
Markup
class, which converts Mardown to HTML and HTML to React components that can be used in JSX expressions
- 9a3b6e5 [fixed] merge the Babel options manually instead of using the OptionManager because webpack can only pass primitive values as query parameters
- cf43b9f [fixed] webpack warnings are purely for informational purposes and do not abort the compilation
- 1d78498 [changed] removed a number of unnecessary dependencies; improved performance; updated dependencies; added more extensive linting rules for the use of the LoDash library
- 08969d1 [removed] support for CSS Modules. Though, certainly a good idea, the implementation is based solely on hacks, which I just do not feel comfortable having on the project. Also, switched to using the Babel OptionManager, instead of loading the configuration file manually.
- 2ab1cb1 [fixed] updated the library interface file
- 440fc4e [added] a
compress
argument toCompiler
,JSCompiler
,SASSCompiler
,JS
andSASS
- 3a4331f [changed] the option of the ESLint rule dot-location from "object" to "property"
- d7ac6fc [fixed] updated dependencies
- 2af4164 [fixed] do not permanently override process.env.NODE_ENV
- 0dce231 [added] support for the server-side usage of the SCSS Modules
- 10f9884 [fixed] the
.scss
loader for webpack
- 52fba51 [added] support for importing
.scss
files as JavaScript modules to JSCompiler#fe
- fda2228 [removed] the one-var ESLint rule
- bff6a80 [changed] JSCompiler#be now does not ignore non-JavaScript files, but simply copies them over
- 4cc3c3c [added] the mkdir function to Compiler
- 18ba82f [removed] an optimization that could result in errors for negligible gains
- 3b9ec58 [removed] an unnecessary test case from JSCompiler.spec
- 423522a [fixed] fixed minor spacing issue in jsdocPlugin
- 607ff33 [fixed] minor. updated docs
- 0ec2f02 [fixed] updated eslint-config-airbnb
- 217aa9d [removed] webpack deftool eval-source-map as a redundant optimisation in development mode, which actually made development harder
- 9bc19e2 [removed] babel-plugin-transform-remove-console
- f7b8672 [fixed] updated dependencies
- 4299688 [removed] redundant Number conversion in
watch
- 6da6e97 [changed] the markdown JSDoc plugin is now included by default; added a broader description of the default plugin to the Documentation class
- 111046e [removed] obsolete "babel" package dependency
- b174e99 [fixed] read the babel config options from under the "env" key
- 20cc69e [fixed] updated autoprefixer
- cfc0d4a [fixed] added a codeclimate config
- 44908e7 [fixed] added back the coveralls dev dependency
- 4d4c980 [changed] everything :) There were too many interconnected changes in this release for any kind of meaningful changelog. Just visit the all new API docs to get started!
- 7daa43f [added] documentation generation as a separate script
- 5f1f1f3 [fixed] documentation
- 5097059 [changed] updated flow ignore list and created interface files for all of the project dependencies
- bcda000 [fixed] updated to ESLint v1.8.0
- fd40706 [fixed] removed peerDependencies and added a requirement for the NodeJS version (>=4.1.1) as well as NPM (>=3.0.0)
- 6acff11 [fixed] travis caching enabled
- 22770c4 [removed] specific c++ compier version dependency from the travis config
- 79e984b [fixed] updated the c++ compiler in travis
- eaa06da [fixed] updated the c++ compiler in travis
- 0f30afe [fixed] updated dependencies
- a6414b4 [changed] switched from Slack to Discord
- 129b423 [fixed] webpack noParse in jsWebCompile for any file a path for which contains the word "browser"
- 86f48d9 [changed] API docs theme
- e30aed3 [fixed] updated dependencies
- 9d09fd1 [fixed] updated readme
- e463cd8 [fixed] updated README
- 64e683d [changed] README.docs.md -> doc_readme.md
- 43a8c85 [fixed] force push the correct docs folder :) [ci skip]
- f5f46aa [fixed] force push the docs [ci skip]
- 15d1079 [added] postpublish hook that automatically pushes the generated docs
- 9bee23b [added] updated readme to include a mention about the Watchman requirement
- 84fa46e [fixed] jsWebCompile improved performance in development mode, advanced optimizations in production
- 9d0ab0b [added] a watch method based on Facebook Watchman as a replacement for the soon to be deprecated simple-recursive-watch
- 9130266 [added] gitignore rule for .idea
- d4a8b1b [fixed] disabled the react/sort-comp rule
- 566d2db [fixed] yaml indentation issue
- 0c90d71 [fixed] updated eslint to v1.6.0 and enabled the no-negated-condition rule
- 829dee3 [fixed] minor linting problems
- d4ad959 [changed] inherit eslint-config-airbnb with some refined best practices
- 6a0a6eb [fixed] updated 3rd party dependencies
- d6a7c07 [fixed] updated to Flow v0.16.0
- 1ecb8ab [fixed] jsdoc for optinal arguments contains the default value
- 111d8a9 [fixed] updated to NodeJS v4.1.1
- 235dd29 [added] a port number argument into the DevServer constructor
- 0715999 [fixed] only execute tests after a successful build
- a25ba24 [fixed] NativeProcess does not crash when inheriting stdio
- a4b43a3 [fixed] do not include a "generated on" timestamp in the footer of the documentation files
- 735d9fa [fixed] made flow ignore all folders except for "lib" and "node_modules"
- moved away from the now deprecated "autoprefixer-core" to "autoprefixer"
- added a development server component designed specifically for very rapid and comfortable application development, built on top of the webpack development server + optionally, react hot loader
- updated ESLint to v1.2.0
- increased the maximum allowed number of arguments a JavaScript function can have to 10
- upgraded to ESLint 1.0!
- much improved default JavaScript linter rules
- updated to the latest babel-eslint
- classes JS and SASS - made "feDev" faster by removing all the validations, the point of this method is to provide as fast as possible recompilations for rapid development
- class SASS - "feDev" also adds the browser vendor prefixes, which degrades the compilation speed slightly, but allows the developer to immediately see the end result without worrying about browser incompatibilities
- class JS - faster source map generation on incremental rebuilds in development mode
- classes JS and SASS - renamed method "fe" to "feProd"
- classes JS and SASS - introduced a new method "feDev", much faster, but not optimized for production
- added a rule to .flowconfig to ignore "spec" directories of the vendor modules
- added sane default rules for the SASS linter
- added a rule for cyclomatic complexity checks of the JavaScript code
- removed a requirement for naming all functions
- exposed all of the internal APIs for easier composition and reuse
- added full test coverage
- JavaScript for Node now preserves all comments, excluding the flow pragma
- JavaScript for Node now preserves all comments, including JSDoc's, perfect for automatic API documentation generation
- Updated ".flowconfig" (see README)
NativeProcess#run
now accepts an additional config object
- Introduced much stricter JavaScript linting rules
- Added automatic API documentation generation