- Add a 'real' command line parser for
lib/cli.js
like minimist - Deprecate Scrollex in favor of execa passing through to stdout/stderr
- Go over all
process.env.*
and make sure they are only at the head ofconfig.js
- Hooks are ran with every build, but not when doing HMR. We might be able to hook into the asset manifest callback to work around this for assets, while lib/cli.js calls it for content (CAN DO, config.webpack.js contains a custom plugin example that shows this now)
- Make it so that you can only build e.g. a homepage via
LANYON_EXCLUDE=* LANYON_INCLUDE=home.html,_layouts/default.html
. However, we first need this Jekyll issue resolved: jekyll/jekyll#4791 (comment) - Throw an error if we find legacy Jekyll residu such as
./vendors
or.bundle
- Throw warning when not jekyll excluding:
- node_modules - .git
, like when you haveexclude: [vendor]
in your jekyll config - Wait on imagemin/imagemin-cli#11 and imagemin/imagemin#226 and add image building from
assets/images
->assets/build/images
Released: TBA. Diff.
- Consider solidifying some hacks like backendProxy or _assets rewrite from the content repo as lanyon options
- Remove all occurances of docker/container, possibly bundle
_jekyll/jekyll.sh
with Lanyon - Deprecate LANYON_MINIMAL, and then delete many lines from .lanyonrc in c repo
- Remove example
Released: 2022-08-31 Diff.
- Add jsx extennsion
Released: 2022-08-31 Diff.
- (BREAKING) disable webpackDevMiddleware, as did not respect the
webpack.resolve.extensionAlias
and broke uponyarn serve
with e.g.[webpack-dev-middleware] ModuleNotFoundError: Module not found: Error: Can't resolve './uppy-homepage-demo.js'
while a build already succeeded. - Assign webpack instance to
config.runtime.webpack
so you can pass its plugins in.lanyonrc.cjs
. E.g.:config.webpack.plugins.unshift(new config.runtime.webpack.NormalModuleReplacementPlugin())
Released: 2022-08-31 Diff.
- Downgrade sass and sass-loader again to avoid:
SassError: NoSuchMethodError: method not found: 'line' on null
Released: 2022-08-31 Diff.
- Upgrade dependencies (such as to TypeScript 4.8)
Released: 2022-07-25 Diff.
- Remove remnants of Docker history
Released: 2022-07-25 Diff.
- Support for
.lanyonrc.cjs
so that Lanyon can be used in ESM modules
Released: 2022-07-25 Diff.
- Add TypeScript support (you can now have assets in
.ts
and.tsx
) - Upgrade all node modules
Released: 2021-05-31 Diff.
- hide sass deprecation warnings in dependencies (@goto-bus-stop)
- Upgrade all node modules
- Add
webpack-hot-middleware/client
to all entrypoints in devmode (BC: no longer needed to add this in.lanyonrc.js
)
Released: 2021-05-31 Diff.
- Upgrade css dependencies
- [-] Do a
build:assets
beforewatch
in case_includes/_generated_assets/app-development-body.html
does not exist <-- can be resolved vialanyon config
these days - Switch from Travis to GitHub Actions
Released: 2021-04-29 Diff.
- Do not build containers by default anymore. Docker is just too slow on macOS, so we're going native Jekyll there via
LANYON_JEKYLL
. - Switch to Dart Sass
Released: 2021-04-29 Diff.
- Do not build Docker containers anymore by default (as Transloadit doesn not use them anymore. Too slow on macOS.)
- Change to Transloadit linting
- Support nested node_modules — specifying absolute paths makes Webpack look only in root node_modules
- Initialize cache directory without running a build via
lanyon configure
- Upgrade to Webpack 5
- Replace OptimizeCSSAssetsPlugin with CssMinimizerPlugin
- Add support for customEnv, allowing you to replace any
process.env.THING
with a value you set in your.lanyonrc.js
- Pass browser targets to babel-present-env (by default it targets ES5), resulting in smaller builds
Released: 2020-08-02 Diff.
- Upgrade to Jekyll 4.1.1
Released: 2020-07-24 Diff.
- Add
jekyll-include-cache:0.2.0
Released: 2020-07-24 Diff.
- Add
--profile
when using LANYON_DEBUG - More consistent
--verbose
(also respect it when usingLANYON_JEKYLL_WATCH
) - Add liquid-c for faster building
Released: 2020-06-12 Diff.
- Allow to not use Nodemon to kickstart Jekyll builds, but use Jekyll file watching directly via
LANYON_JEKYLL_WATCH
. Example:LANYON_JEKYLL_WATCH=1 LANYON_JEKYLL=${HOME}/code/content/_jekyll/jekyll.sh npx lanyon start
Released: 2020-06-11 Diff.
- Allow to pass in your own Jekyll install via
LANYON_JEKYLL
. Example:LANYON_JEKYLL=${HOME}/code/content/_jekyll/jekyll.sh npx lanyon start
Released: 2020-06-09 Diff.
- Upgrade from Jekyll 4.0.0 -> 4.1.0
- Temporarily switch from jekyll/jekyll-> kevinvz/jekyll as long as a new official container does not exist jekyll/jekyll#8240
Released: 2020-06-09 Diff.
- BREAKING Remove LESS support in favor of SASS/SCSS
- BREAKING Cleanup unused node modules
Released: 2020-06-09 Diff.
- Upgrade all gems as part of the Lanyon docker image
Released: 2020-06-09 Diff.
- Pin Jekyll version to 4.0.0 (vs 4.0), because 4.0 also matches 4.0.1, which introduced a speed regression jekyll/jekyll#8233
Released: 2020-06-09 Diff.
- Upgrade deps
- Fix typo: Productioin
Released: 2020-06-09 Diff.
- Set
cache:true
for HTML Plugin so asset references aren't written each time, triggering Jekyll builds for all pages that use them, which can be all of them.
Released: 2020-06-08 Diff.
- Combine jQuery & Bootstrap window import rules
- Combine file & url loaders where safely possible
Released: 2020-06-08 Diff.
- Less verbose exit
- Cleanup whitespace and internal webpack config structure
Released: 2020-06-08 Diff.
- Allow user to transform the assets that are injected into
_includes/_generated_assets/
via the override functionsruntime.headAssetTemplate
andruntime.bodyAssetTemplate
that you can set in your.lanyonrc
like so:module.exports.overrideRuntime = ({ runtime, toolkit }) => { runtime.headAssetTemplate = ({ htmlWebpackPlugin }) => { return `${htmlWebpackPlugin.tags.headTags}`.replace(/"\/assets\//g, `"https://transloadit.edgly.net/assets/`) } runtime.bodyAssetTemplate = ({ htmlWebpackPlugin }) => { return `${htmlWebpackPlugin.tags.bodyTags}`.replace(/"\/assets\//g, `"https://transloadit.edgly.net/assets/`) } }
Released: 2020-06-08 Diff.
- Fix bug: no longer reference
jekyll.lanyon_assets.yml
Released: 2020-06-08 Diff.
- Fix bug: No longer use cache-loader before MiniCssExtractPlugin, so that CSS assets exist in entrypoints, even when nothing changed
- Switch from
AssetsPlugin
toStatsWriterPlugin
/thx @goto-bus-stop - BREAKING Switch to
splitChunks
. This means entrypoints have multiple assets now - BREAKING Switch from
jekyll.lanyon_assets.yml
toHtmlWebpackPlugin
which creates html snippets to easier load multiple assets per entrypoint. These files are written to_includes/_generated_assets/
. To include, replace any occurance oflanyon_assets
, with CSS:{%include _generated_assets/app-{{jekyll.environment}}-head.html%}
, for JS:{%include _generated_assets/app-{{jekyll.environment}}-body.html%}
. You'll first want to run abuild
before doing astart
to prewarm the generated includes. It's recommended to commit the development assets, but git ignore production ones by adding_includes/_generated_assets/*-production-*.html
to.gitignore
Released: 2020-06-08 Diff.
- Add BundleAnalyzerPlugin behind
LANYON_ANALYZE=1
flag. To use try e.g.LANYON_ANALYZE=1 LANYON_ENV=production npx lanyon build:assets
Released: 2020-06-08 Diff.
- Add BundleAnalyzerPlugin. To use try e.g.
make build-assets-production && open _assets/build/report.html
inside your project (or:LANYON_ENV=production npx lanyon build:assets && open _assets/build/report.html
)
Released: 2020-06-05 Diff.
- Accumulate lanyon_assets rather than overwriting, because with caching, we sometimes only get passed JS assets, which effectively removes CSS asset references
Released: 2020-06-05 Diff.
- Move back from
noParse: (content) => /jquery|lodash/.test(content),
because it results inReferenceError: require is not defined
for_.get
Released: 2020-06-05 Diff.
- Move back from
eval-cheap-module-source-map
tosource-map
for production as it increased js builds by 15MB
Released: 2020-06-05 Diff.
- [-] Add DllPlugin https://webpack.js.org/plugins/dll-plugin/ <-- this requires several webpack calls and entry points using eachother, high hanging fruit
- [-] Use SplitChunksPlugin https://webpack.js.org/guides/build-performance/#smaller--faster <-- increases build time (as indicated in https://webpack.js.org/guides/build-performance/#avoid-extra-optimization-steps) and generates many more assets to include it seems, high hanging fruit
- Add cache-loader https://github.com/webpack-contrib/cache-loader/ in front of expensive non-babel loaders <-- as it has its own caching. Clear cache directory on
"postinstall"
inpackage.json
. - Add cache-loader:babel
cacheDirectory: .lanyon
,cacheCompression:false
on babel-loader https://github.com/babel/babel-loader#options - Limit fileset by making
include
as discrimating as can be - Make sure we set a
recordsPath
https://webpack.js.org/configuration/other-options/#recordspath - Minimize the number of items in
resolve.modules
,resolve.extensions
,resolve.mainFiles
,resolve.descriptionFiles
, as they increase the number of filesystem calls. - No
Uglify
,Terser
,ExtractText
,[hash]
,[chunkhash]
,AggressiveSplittingPlugin
,AggressiveMergingPlugin
,ModuleConcatenationPlugin
for dev mode. SetuglifyOptions.compress: false
for prod. - Only use
ProgressPlugin
briefly, then remove - Set
module.noParse: (content) => /jquery|lodash/.test(content)
https://webpack.js.org/configuration/module/#module-noparse - Set
optimization: { removeAvailableModules: false, removeEmptyChunks: false, splitChunks: false, },
https://webpack.js.org/guides/build-performance/#avoid-extra-optimization-steps - Switch sourcemaps to
eval-cheap-module-source-map
https://webpack.js.org/guides/build-performance/#devtool - Use ThreadLoader https://github.com/webpack-contrib/thread-loader. For node-sass, set
workerParallelJobs: 2
. <-- gives errors for css but seems to work for js
Released: 2020-06-04 Diff.
- Less verbose Lanyon unless you turn on LANYON_DEBUG
- Remove font-awesome
- Remove SvgStoreWebpackPlugin
- Simplify postcss
- Remove cssnano
- Remove ProvidePlugin (of
lodash
as_
without importing it) - Remove LoaderOptionsPlugin
- Remove CommonsChunkPlugin and friends
- Remove Visualizer statistics
Released: 2020-06-04 Diff.
- Add
.lanyon
to.gitignore
only once
Released: 2020-06-04 Diff.
- Fix bug in asset writing
Released: 2020-06-04 Diff.
- Bail out if
assets
was empty - Always show deprecation traces for Node
Released: 2020-06-04 Diff.
- Store
orphaned
assets under said key
Released: 2020-06-04 Diff.
- Fix JSX parsing
Released: 2020-06-04 Diff.
- Show Node.js deprecation traces when
LANYON_DEBUG=1
, as well as Webpack profile and progress - Add worker-loader
- Drop Node.js 8 support
- Make travis tests pass again
- Migrate from extract-text-webpack-plugin + style-loader -> mini-css-extract-plugin
- Migrate from UglifyJS -> [email protected],
- Upgrade [email protected] -> [email protected]
- Upgrade [email protected] -> [email protected]
- Upgrade [email protected] -> [email protected]
- Upgrade [email protected] -> [email protected]
- Upgrade [email protected] -> [email protected]
- Upgrade [email protected] -> nodemon@2
- Upgrade [email protected] -> [email protected]
- Upgrade [email protected] -> [email protected]
- Upgrade [email protected] -> [email protected]
- Upgrade [email protected] -> [email protected]
- Upgrade [email protected] -> [email protected]
- Upgrade [email protected] -> [email protected]
Released: 2020-04-22 Diff.
- Upgrade node-sass 4.12.0 -> 4.13.1
Released: 2019-12-30 Diff.
- Add
ignoreOrder
forExtractTextPlugin
to avoid: "Order in extracted chunk undefined" ¯_(ツ)_/¯
Released: 2019-12-09 Diff.
- Add
@babel/plugin-proposal-decorators
Released: 2019-11-22 Diff.
- Make uglification optional via
runtime.uglify = false
Released: 2019-11-22 Diff.
- Make Lanyon look at browser config as passing in by project via runtime.browsers
- Upgrade to standard14
Released: 2019-11-22 Diff.
- Revert from jekyll-paginate v2 to v1 because v2 isn't Jekyll v4 compatible it turns out (sverrirs/jekyll-paginate-v2#165)
Released: 2019-11-22 Diff.
- Switch from jekyll-paginate v1 to v2
Released: 2019-11-20 Diff.
- Fix:
BrowserslistError: Unknown version 3 of safari
Released: 2019-10-23. Diff.
- Add
jekyll-last-modified-at:1.1.0
Released: 2019-10-23. Diff.
- Add redirect_from
Released: 2019-10-23. Diff.
- Add paginate tagsgenerator
Released: 2019-10-23. Diff.
- Add jekyll seo-tag, sitemap, mentions, tagging
- Remove minimal-mistakes-jekyll
Released: 2019-10-22. Diff.
- yarn add @babel/[email protected] @babel/[email protected]
Released: 2019-10-22. Diff.
- Add support for
extraAssetsSourceDirs
Released: 2019-10-22. Diff.
- Allow
process.env.ENDPOINT
to be used in JS
Released: 2019-10-22. Diff.
- Also allow
process.env.NODE_ENV
to be used in JS whenLANYON_ENV
is'development'
- Allow
process.env.LANYON_ENV
to be used in JS
Released: 2019-10-22. Diff.
- (BREAKING) Upgrade to Babel 7 and the babel-env preset. Among things, you'll need to change
Object.assign()
s to Object Spreads
Released: 2019-09-25. Diff.
- Switch to
eval-source-map
in dev which provides better sourcemaps (#20, thanks @lakesare)
Released: 2019-09-04. Diff.
- Update dependencies (within major)
- Make all processes less verbose, unless
LANYON_DEBUG=1
- Remove
reloadThrottle
andreloadDelay
so that hopefullyreloadDebounce
in browsersync can persevere - Crash lanyon if it catches a
SIGUSR2
(which could be thrown by Nodemon) - Crash nodemon (and hence lanyon) if its child-process-to-be-started-on-filechange (docker->jekyll) crash
- Fix
git ignore
error
Released: 2019-09-04. Diff.
- Allow to pass in webpack resolve alias via
runtime.alias
Released: 2019-09-03. Diff.
- Don't run in verbose mode by default (but allow passing in
LANYON_EXTRA_JEKYLL_FLAGS="--trace --verbose"
if more detail is needed)
Released: 2019-09-03. Diff.
- Bring back stringex
Released: 2019-09-03. Diff.
- Upgrade to Jekyll 4
- Upgrade to jekyll-feed 0.12.1 and minimal-mistakes-jekyll 4.16.6
- Deprecate jekyll-algolia, github-pages
Released: 2019-08-09. Diff.
- Also add gem lockfile
Released: 2019-08-09. Diff.
- Install algolia via Gemfile & bundle update so that
jekyll algolia
becomes available
Released: 2019-08-09. Diff.
- Replace lunrjs with algolia
Released: 2019-08-09. Diff.
- Upgrade dependencies in docker image
Released: 2018-09-04. Diff.
- Fix Travis & Babel issues
Released: 2018-09-04. Diff.
- Fix Travis tests
- revert: Allow to
setupContainer()
(but don't use it yet)
Released: 2018-09-04. Diff.
- Easier debugging of travis deploy failures
Released: 2018-09-04. Diff.
- Allow to
setupContainer()
(but don't use it yet) - Write files as current $USER to avoid manual chowning
- Make failing hooks fatal
Released: 2018-09-04. Diff.
- Upgrade SASS
Released: 2018-08-22. Diff.
- Remove react as being bundled by lanyon /thx @Acconut
Released: 2018-08-22. Diff.
- Remove coffeescript support /thx @Acconut
Released: 2018-07-16. Diff.
- Upgrade gems and Jekyll from 3.7 -> 3.8 (which includes "Two massive performance improvements for large sites" - https://github.com/jekyll/jekyll/blob/master/History.markdown#380--2018-04-19)
Released: 2018-07-13. Diff.
- Drop support for: Modernizr, Svgeezy, Bower
Released: 2018-07-06. Diff.
- More consistent override methods
Released: 2018-07-06. Diff.
- Add support for PostCSS
Released: 2018-04-18. Diff.
- Pass a toolkit to lanyonrc with functions like dockerString
Released: 2018-04-12. Diff.
- Fix initProject issues
Released: 2018-04-12. Diff.
- Improved child process juggling
Released: 2018-04-12. Diff.
- Remove
shelljs
completely - Deprecate magic themeDir handling for now
- Use pkill instead of killall so it works on both Linux & OSX (thanks @Acconut)
- Restart lanyon container if it crashes
- Cleaner kills for cleanup
Released: 2018-04-11. Diff.
- Figure out if incremental build is maybe actually working (is non-inc even slower?) investigate docker jekyll disk speedup
- Optionally offer docker-sync for faster build times on osx https://github.com/EugenMayer/docker-sync/wiki/2.-Configuration
- Simplify how hooks work
Released: 2018-04-10. Diff.
- Fix JEKYLL_ENV in Docker
Released: 2018-04-10. Diff.
- Move
--display-optimization-bailout
cli arg to webpack config instead - Make sure webpack does not immediately return
- Simplify docker volumes (and avoid nesting)
Released: 2018-04-10. Diff.
- Allow to disable incremental
Released: 2018-04-09. Diff.
- Move postbuild hook into nodemon
- Make nodemon respect jekyll exclude, deprecating
contentIgnore
- Don't let Lanyon call lanyon
- Split up config over individual files per tool
- Allow
.lanyonrc.js
in projectDir to temper with config (deprecating many env vars) - Require Node 8+ (and ditch babel)
- Require Docker (and ditch rbenv, rvm, system support)
Released: 2018-03-26. Diff.
- Remove jQuery from Lanyon
Released: 2018-02-26. Diff.
- Fix
LANYON_DISABLE_JEKYLL_PLUGINS
Released: 2017-10-24. Diff.
- Introduce a browsersync reloadDelay reloadDebounce reloadThrottle
- Introduce a nodemon delay of 600ms
Released: 2017-10-24. Diff.
- Fix the disabling of setting no plugins via e.g.
env LANYON_DISABLE_GEMS=jemoji,jekyll-redirect-from,jekyll-feed,jekyll-sitemap LANYON_EXCLUDE=** LANYON_INCLUDE=home.html,_layouts/default.html lanyon start
Released: 2017-10-18. Diff.
- Advocate LANYON_DISABLE_JEKYLL_PLUGINS
- Switch from
babel-preset-2015
tobabel-preset-env
- Deprecate Node 0.12 and v4 support (now v6+)
Released: 2017-10-18. Diff.
- Downgrade uglify-js
Released: 2017-10-18. Diff.
- Add minimal-mistakes-jekyll
- Downgrade less
Released: 2017-10-18. Diff.
- Make Jest run on
./src
- Rename
gems
->plugins
to avoid deprecation notice:Deprecation: The 'gems' configuration option has been renamed to 'plugins'. Please update your config file accordingly.
- Upgrade
github-pages
to164
(and therebyjekyll
to3.6
) - Add Scope Hoisting
- Upgrade to Webpack v3
Released: 2017-09-05. Diff.
- Fix bug in: Rebuild docker gems only if there are custom gems in the project
Released: 2017-09-05. Diff.
- Yarn & npm fixes
Released: 2017-09-05. Diff.
- Rebuild docker gems only if there are custom gems in the project
Released: 2017-09-03. Diff.
- Back to rootless docker runs, should fix Travis CI failure where shims written by container are inaccessible: https://travis-ci.org/kvz/lanyon/jobs/271361343#L765
- Upgrade github-pages to
157
Released: 2017-09-03. Diff.
- Allow docker variant to install custom gems
- Avoid promise warnings by catching async/await in install
- Upgrade parallelshell
Released: 2017-07-10. Diff.
- Fix dependency pathfinding of local lanyon
Released: 2017-07-10. Diff.
- Upgrade github-pages, nokogiri, and minimum required ruby to 2.1.0
- Reset shims while rebuilding container
- Respect docker while verifying Ruby
- Ship "[email protected]"
Released: 2017-06-29. Diff.
- Fix js sourcemaps when UglifyJsPlugin was enabled (now adding
//# sourceMappingURL=app.6fce32551585c35c4b80.js.map
again)
Released: 2017-06-29. Diff.
- Upgrade npm deps
Released: 2017-06-23. Diff.
- Respect local
.babelrc
, allowing for e.g. transform-object-assign to work in content and thus fix issues with IE 11
Released: 2017-06-02. Diff.
- Add support for
_config.develop.yml
. If it exists, it will be merged over_config.yml
but "under" magic keys:gems
,exclude
,include
that can be influenced viaLANYON_DISABLE_GEMS
LANYON_EXCLUDE
LANYON_INCLUDE
env vars
Released: 2017-05-29. Diff.
- Make common bundles use a hash in their filenames as it might resolve behavior reported in webpack/webpack#959
Released: 2017-04-29. Diff.
- Upgrade github-pages 129->134 and jekyll 3.3.0->3.4.3
Released: 2017-04-27. Diff.
- Avoid:
Warning: It looks like you're using a minified copy of the development build of React.
Released: 2017-04-25. Diff.
- Improved React support
Released: 2017-04-21. Diff.
- Fix bundling npm modules that have a browser entry point and a node entry point (thx @goto-bus-stop)
- Fix bundling modules that happen to have the same name as a Webpack loader that's also installed. (BREAKING: all modules now exlicitly need to be suffixed with
-loader
) (thx @goto-bus-stop)
Released: 2017-04-20. Diff.
- Use
source-map
in production vs the inline variant :o
Released: 2017-04-05. Diff.
- Also scan
npmRoot
for modules, so that consumers that havewebsite
as aprojectDir
can still have Lanyon locatebabel-loader
,style-loader
, etc. Removed resolvingbabel-loader
due to this. Previously was done for asset loading.
Released: 2017-04-05. Diff.
- Also scan
npmRoot
for modules, so that consumers that havewebsite
as aprojectDir
can still have Lanyon locatebabel-loader
,style-loader
, etc. Removed resolvingbabel-loader
due to this.
Released: 2017-04-05. Diff.
- Resolve
babel-loader
so the projectDir does not need it
Released: 2017-04-05. Diff.
- Allow any kind of hook
Released: 2017-04-05. Diff.
- Allow hooks to only run on e.g.
build:content
vs also onbuild:assets
. - Run dependency version checks in parallel to speed up boottimes
Released: 2017-04-05. Diff.
- Fix less error by moving resolve-url-loader after less parsing (loaders are used from right to left)
( WARNING in /Users/kvz/code/lanyon/~/css-loader?{}!/Users/kvz/code/lanyon/~/less-loader/dist?{}!/Users/kvz/code/lanyon/~/resolve-url-loader!../assets/stylesheets/app.css.less (Emitted value instead of an instance of Error) resolve-url-loader cannot operate: CSS error /Users/kvz/code/tus.io/assets/stylesheets/app.css.less:21:1: missing '{')
- Enable Bower via lpiepiora/bower-webpack-plugin#39 (comment) vs
BowerWebpackPlugin
Released: 2017-04-05. Diff.
- More safe version checking
Released: 2017-04-05. Diff.
- Ship a
deploy
executable for Travis instead of generating one, which relies onlanyon install
, which is not a file, resulting in more complicated.travis.yml
files:./node_modules/lanyon/scripts/ci-deploy.sh
Released: 2017-04-05. Diff.
- Install an install-shim because travis needs full paths to execute vs scripts in the
before_deploy
step - Display versions of dependencies for easier debugging
Released: 2017-04-05. Diff.
- Upgrade from webpack
1.14.0
->2.3.1
(BowerWebpackPlugin don't work yet)
Released: 2017-03-28. Diff.
- Add support for
extraWebroots
so that you can serve e.g. dummy dynamic content in development
Released: 2017-03-24. Diff.
- Always profile Jekyll on one-off builds
- Better error handling for YAML exceptions
- Fix:
YAMLException: unacceptable kind of an object to dump [object Undefined]
Released: 2017-03-24. Diff.
- Fix issue where production builds reported bad sourcemaps
- Fix issue where empty
LANYON_DISABLE_GEMS
list results in no gems being enabled
Released: 2017-03-24. Diff.
- Fix issue where multiple webpack instances where running
Released: 2017-03-23. Diff.
- Support for
LANYON_DISABLE_GEMS=jekyll-feed,jekyll-sitemap
allowing you to temporarily disable time consuming plugins
Released: 2017-03-23. Diff.
- Teach Lanyon about zero leading version numbers such as
Docker version 17.03.0-ce
- Now that jemoji relies on
gemoji
3.0+ (vs ~2.0), add cli command to generate emoji intoassets/images/emoji
(build:emoji
callingbundle exec gemoji extract assets/images/emoji
) - Switch from
eval-cheap-source-map
toinline-eval-cheap-source-map
for presumably faster builds erikras/react-redux-universal-hot-example#616 - Upgrade GitHub pages from 112 to 129
- Remove
jekyll-crosspost-to-medium
as built in gem - Downgrade
css-loader
to 0.14.5 to address superslow HMR builds webpack-contrib/css-loader#124 - Pass down
DEBUG
env var - Upgrade
[email protected]
The release that wasn't
Released: 2017-02-18. Diff.
- Upgrade node-sass to address peerInvalid: https://travis-ci.org/kvz/lanyon/jobs/202922768#L455
Released: 2017-02-18. Diff.
- Fix bug: Do not add empty items to
exclude
(or everything gets excluded)
Released: 2017-02-17. Diff.
- Add support for e.g.
LANYON_EXCLUDE=_posts,_demos
env var, allowing you to temporarily not build content - Instead of overwriting a project's
exclude
, add to it. - Upgrade to resolve-url >2.0, fixing a bug where leading to broken font-awesome icons in chrome in dev mode
- Upgrade minor & patch level dependencies
Released: 2017-02-15. Diff.
- Upgrade to
[email protected]
which will default topassthru
mode
on Travis CI and non-TTY environments
Released: 2017-02-15. Diff.
- Fix bug that prevented resetting of shims
Released: 2017-02-15. Diff.
- Fix rvm homebrew lock on Travis
- Add support for
postbuild
hooks
Released: 2017-02-15. Diff.
- Only use singlescroll on
start
- In boot, treat
lanyon
like any othernpmBin
- Switch to using rvm
--binary
to avoid compile issues (https://travis-ci.org/kvz/lanyon/jobs/201786728#L1679)
Released: 2017-02-15. Diff.
- Find
node_modules/.bin/lanyon
innpmRoot
vsprojectDir
Released: 2017-02-14. Diff.
- Make gem-paths absolute
- Use npm
files
Released: 2017-02-14. Diff.
- Remove
lib
from Git again now that we can build on older nodes now that the es2015-loose problem is solved - Also run
lanyon install
in the Travis deploy shim, so that we can opt to not install lanyon in unrelated branches - Switch from
es2015-loose
toes2015
babel preset to resolve build issues on Travis - Add Dockerfile for testing building on node 0.12 locally
- Remove imagemin so long as we're not using it and it's causing build problems (gifsicle: Assertion failed: 0 (../deps/uv/src/uv-common.c: uv_err_name: 143))
Released: 2017-02-11. Diff.
- Localize
GEM_HOME
andGEM_PATH
in container - Only run acceptance test on all platforms. Rest of the tests on Node 6 only
- Distribute the
Gemfile.lock
as well, allow updates viaLANYON_UPDATE_GEM_LOCKFILE=1
- Switch from ava -> jest
- Fix bug:
the input device is not a TTY
- No longer auto install ruby things upon
install
, require an explicit call tocli.js install
instead - Introduce async/await for internal use (install)
- Add scrolling output via
scrolex
- Rename
postinstall
toinstall
Released: 2017-01-31. Diff.
- Add webpack-svgstore-plugin (@arturi, #6)
- Remove underscore version from libxml2 on brew osx prefix as
/usr/local/Cellar/libxml2/2.9.4
exists but advertised/usr/local/Cellar/libxml2/2.9.4_2
does not - Add
container:rebuild
to rebuild a container from scratc (docker build --no-cache
)
Released: 2017-01-06. Diff.
- Add pkg-config to resolve another Another Nokogiri error https://travis-ci.org/kvz/lanyon/jobs/193744753#L418
- Skip installs if
LANYON_NOINSTALL==1
- Switch to ES6 (see https://github.com/transloadit/botty/blob/738f9d51417d84d429cd4b558898bc3a9826cd9d/decaf.sh), mostly to profit from template strings. Transpile down to ES5 for npm as Lanyon aims for portability.
Released: 2017-01-06. Diff.
- Add experimental support for optimizing images via
build:images
(fromassets/images
toassets/build/images
) - Build docker container inside
.lanyon
dir. Write config fromutils
like any other config, vs copying over files (allows for intelligent cache invalidation later on also) - Do not use docker cache so we get a fresh Gemfile. Fixes https://travis-ci.org/kvz/lanyon/jobs/188882616#L1530
- Add
container:connect
command to look inside docker container - Give Lanyon Jekyll 💎 theme awareness
Released: 2017-01-04. Diff.
- Upgrade to github pages gem version
v104
->v112
(https://github.com/github/pages-gem/compare/v104...v112) - Provide access to gemlist of gh pages gem for internal use via
./lib/cli.js list:ghpgems
- Avoid new installs preferring nokogiri 1.7 over 1.6 so more systems can use Ruby 2.0 vs then nokogiri 1.7 required 2.1
- Also initProject at
start
so that config can be written if users type start as a first run - Add a website http://lanyon.io
- First go into projectDir before running deploy, to support nested websites
Diff.
- Basic support for injecters via
contentIgnore
andcontentScandir
Diff.
- Add support for
OptimizeCssAssetsPlugin
Diff.
- Support for a
js-untouched
directory, where js won't pass through babel
Diff.
- Fix babel source maps
- Only exit on error when in production mode`
Diff.
- Use Babel ES2015 as shipped by Lanyon, ignoring any project's
.babelrc
(BREAKING) (We might support sth more intelligent in the future, but for now are favoring convention & near-zero-setup by the project) - "Don't use JSX loader, use babel instead" - https://github.com/petehunt/jsx-loader
- Fix bug: test: could not interpret expression
Diff.
- Ditch uglify loader in favor of plugin, as the loader cannot handle ES6 (even though the babel loader is ran first)
Diff.
- Fix bug where only incremental builds receive asset indices
- Only reset
jekyll.lanyon_assets.yml
if it does not exist
Diff.
- Add globby as a dependency
Diff.
- Fix deploy failsafe
Diff.
- No longer exclude
node_modules|bower_components|vendor
by default - Disable resolve-url-loader for less as less currently produces invalid css (in its eyes)
- Make errors fatal in production
- Include plain css with ExtractTextPlugin
Diff.
- Make Deploy check aware of hashed cachebuster assets
- Fix less resolve-url-loader sourcemap issues
Diff.
- Move uglify loader to deps (vs devDeps)
Diff.
- Build assets first, so that Jekyll can copy it into
_site
, and alsojekyll.lanyon_assets.yml
exists in time - Add debugging notes
- Add uglify as a dependency
Diff.
- More optimization for production builds
- Fix svgeezy (which works with a local
svgeezy
var, not one onwindow
) - Enable vizualizer support by default, writing to
assets/build/stats.html
, unless you setlanyon.statistics
tofalse
in yourpackage.json
- Add support for long-term caching, and cache busting
- Add vizualizer by definining
lanyon.statistics: "webpack-statistics.html"
in yourpackage.json
. Directory is fixed to build dir, and this does not work indevelopment
/HMR mode - Add support for shared code-splitted bundles by defining
lanyon.common
in yourpackage.json
- Add jquery to bower components
- Fix coffee loader
- Add resolve-url-loader so e.g. mediaplayer & select2 can find their relative assets such as
./select2.png
or./controls.png
- Allow asset loaders to load from
bower_components
- Allow bower installed bootstrap-sass to use
window
andjQuery
- Offer a lodash
_
plugin - Reset (a possibly corrupted)
records.json
- Fix:
Module not found: Error: Cannot resolve module 'fs'
by addingnode: { fs: 'empty' }, target: 'node'
to webpack config - Support
prebuild*
hooks being arrays - Fix bad Git ignores
- Revert plain css files to extract text plugin
Diff.
- Add plain css files to extract text plugin /thx @Acconut
Diff.
- Allow relative projectDir
Diff.
- Allow scanning from
LANYON_PROJECT
Diff.
- Never settle for
lanyon
as a projectDir
Diff.
- Do
realpathSync
relative fromgitRoot
Diff.
- Fix bad build
Diff.
- Added
utils.upwardDirContaining
for definitive pathfinding
Diff.
- Use
find-up
for findinggitRoot
andnpmRoot
, which might not beprojectDir
- Also support
web:deploy
npm script name
Diff.
- Also traverse upwards from projectDir to find
node_modules
Diff.
- Better module pathfinding
Diff.
- Use
gitRoot
instead ofprojectDir
for flat module finding, so it works when your project is in a subdir (likewebsite
ordocs
)
Diff.
- Support for flat module structure where modules live in
projectDir
Diff.
- Deploy now supports
web:build:production
Diff.
- Prefix deps with node
Diff.
- Fix bug leading to block install resets
Diff.
- Make installs idempotent
- Detect rubyProvider of existing shims
- Introduce a
LANYON_RESET
, that removes all shims
Diff.
- Don't rely on
.bin
symlinks as they don't appear to survive Travis CI cache
Diff.
- Use spawn-sync for older nodes
Diff.
- Pathfinding fixes, added
gitRoot
- Rename
vendor/bin
tobin
- Refactoring of deploy & encrypt
Diff.
- Offer
lanyon deploy
for deploying onto GitHub Pages - Offer
lanyon encrypt
for encrypting GitHub Pages deploy secrets onto Travis CI - Fix broken shim quoting
Diff.
- Avoid double installs by fixing binDir references for shims
Diff.
- Utilize Webpack
--production
flag - Add Jekyll config writer (so we can ignore
node_modules
and.lanyon
) - By default prefer system ruby over docker, for performance reasons
Diff.
- Add support for
production
-or-development
-only hooks - Add coffeescript support
- Add less support
Diff.
- Add support for configurable projectDir (so you can have a
./website
or./docs
in your project) - Refactoring
Diff.
- Switch to a local lanyon install if available
- Simplify/fix Browserify file watching
- Do docker connect via shim
- Store everything in
cacheDir
(projectDir/.lanyon) instead of in node_modules dir
Diff.
- Support for prebuild hook
Diff.
- Use textextractor loader in production for scss, also check https://github.com/gowravshekar/font-awesome-webpack#extract-text-webpack-plugin
- checkout http://stackoverflow.com/questions/33649761/how-do-i-load-font-awesome-using-scss-sass-in-webpack-using-relative-paths