* Add a plan for dynamic entry middleware.
* Use dynamic pages middleware to load pages in dev.
* Add the first version of middleware but not tested.
* Integrated.
* Disable prefetching in development.
Otherwise it'll discard the use of dynamic-entries.
* Build custom document and error always.
* Refactor code base.
* Change branding as on-demand entries.
* Fix tests.
* Add a client side pinger for on-demand-entries.
* Dispose inactive entries.
* Add proper logs.
* Update grammer changes.
* Add integration tests for ondemand entries.
* Improve ondemand entry disposing logic.
* Try to improve testing.
* Make sure entries are not getting disposed in basic integration tests.
* Resolve conflicts.
* Fix tests.
* Fix issue when running Router.onRouteChangeComplete
* Simplify state management.
* Make sure we don't dispose the last active page.
* Reload invalid pages detected with the client side ping.
* Improve the pinger code.
* Touch the first page to speed up the future rebuild times.
* Add Websockets based pinger.
* Revert "Add Websockets based pinger."
This reverts commit f706a49a3d886d0231259b7a1fded750ced2e48f.
* Do not send requests per every route change.
* Make sure we are completing the middleware request always.
* Make sure test pages are prebuilt.
* Fix "EXDEV: cross-device link not permitted" error
* Fix lint errors
Not sure why standard passes in my dev environment, but hopefully this fixes the CI errors.
* Fix logic mistake
Wow, my bad :/
Without this, modules built with Babel or Webpack would have hard-coded absolute paths
all the way back to the root of the filesystem. This prevented compilation and running
on different machines or even from different directories on the same machine.
With this change, paths are hard-coded to the top-most node_madules directory found,
which should make them portable relative to the app.
Fixes#1160
* Remove babell-plugin-transform-react-constant-elements.
With this, our shared-modules example's counter won't work in
production mode. (as this plugin enabled)
So, we could see more issues like this.
That's why we don't need this at this time.
* Update package.json.
* Add babel-preset-2016 support.
This adds the support for Exponentiation operator (**)
* Use babel-preset-latest.
* Remove babel-plugin-transform-async-to-generator in favor of babel-plugin-latest
It has es2017 preset and it comes with the above plugin.
* Find custom babel config location properly.
Earlier we simply check for the .bablerc file in the dir.
But the actual logic is much complex.
Now we are using the babel's actual logic to find the
custom config location.
* Fix failing tests.
* Let webpack2 to handle ES2015 module system
Since Node.js can't do that, we need to transpile
ES2015 module system in the emit-file-loader.
* Use sourceMaps only in dev.
* Introduce a transform option to emit-file-loader
So, we can move our ES2015 transpile code with that option.
* Remove unwanted argument options.
* Update comments.
* Use dev flag instead of NODE_ENV
* Remove default next pages compilation from the main babel-loader.
This will fix the issue when the user ignore node_modules
via our .babelrc option.
* Change babel-loaders 'query' to 'options'.
That's what's supported/recommended in webpack 2
* Write BUILD_ID when building.
It's a random id (uuid.v4())
* Add buildId to the core JS files.
* Add immutable cache-control header.
Only if the buildId is matched.
* Set '-' as the dev buildId always.
* Add buildId handling for JSON pages.
* Check for .json file extension before JSON parse. Was throwing when reading js files.
* Fix cross platform regex
* Revert back to the original content in read-page.js
Otherwise, webpack will throw an error saying
it couldn't find entries.
That's because it couldn't find babel-loader and
other loaders installed into app's node_modules dir.
* Server JSON pages directly from the filesystem.
* Make Json pages even if there's an error.
* Implement much better page serving.
* Use JsonPagesPlugin in the production mode as well.
* Add gzip support for JSON pages.
* Use glob-promise instead of recursive-readdir
* Handle renderStatic 404 properly.
* Simply the gzip code.
* Cache already read JSON pages.
* Change JSON pages extension to .json.
* Fix HMR related issue.
* Fix hot-reload for .json solely on server.
* Properly clear cache on hot-reloader.
* Convert .js pages into .json page right inside the plugin.
* Fix gzipping .json pages.
* Remove unwanted json pages cleanup.
* Get rid of deprecated fs.exists for fs.access
* Add AOT gzip content-encoding support.
Currently we only do this for
main.js and commons.js only.
* Remove unwanted await.
* Use Promise.all to gzip assets in parallel.
* upgrade webpack
* fix WatchRemoveEventPlugin for webpack2
* use webpack2 for building for files
* bump webpack
* bump webpack
* monkeypatch watchpack
* compile _document using webpack
* don't emit the bundle file of _document.js
* exclude _document.js from minChunks of CommonsChunkPlugin
* handle creation/removal of pages/_document.js
* improve path handlings
* Create a babel-preset for plugins and presets we use.
Anyone could get it via 'next/babel'
* Remove 'use strict' from the source.
* Add next/router to alias resolver in our babel preset.
* Use next.config.js instead of package.json
* Remove irrelevant comment
* Integrate with custom webpack config
* Include hotReload option
* Remove async/await for getConfig
* Read package.json, show warning when webpack in config is defined
* Prepend warning message with WARNING
* Update log statements
* Documentation
* Restart server on change of config
* Fix process handling and cases where there is no config
* Also restart server when config file gets deleted
* Changed second parameter of webpack to config
* Support for returning Promise
* Update documentation, fix bug with webpack config
* Remove package.json, cdn and hotReload from config
* Remove the use of CDN and bundle everything inside the app.
We still pre-build the prefetcher because it needs
different webpack config which only targets browsers
supports Service Workers.
* Remove cdn config item.
We no longer using it.
* Stop adding script tags when staticMarkup=true
* Remove babel-plugin-transform-remove-strict-mode NPM module.
React addons require React in a special way.
That causes Webpack to push React into the app's bundle.
This fix adds new externals entries to prevent that.
* Register the service worker.
* Update prefetcher code to do prefetching.
* Implement the core prefetching API.
support "import <Link>, { prefetch } from 'next/prefetch'"
* Implement a better communication system with the service worker.
* Add a separate example for prefetching
* Fix some typos.
* Initiate service worker support even prefetching is not used.
This is pretty important since initiating will reset the cache.
If we don't do this, it's possible to have old cached resources
after the user decided to remove all of the prefetching logic.
In this case, even the page didn't prefetch it'll use the
previously cached pages. That because of there might be a already running
service worker.
* Use url module to get pathname.
* Move prefetcher code to the client from pages
Now we also do a webpack build for the prefetcher code.
* Add prefetching docs to the README.md
* Fix some typo.
* Register service worker only if asked to prefetch
We also clean the cache always, even we initialize
the service worker or not.
Earlier it was for all length of entry points.
But we add two more entry points for errors.
Because of that, moving common modules to commons.js won't work.
* Add example app which demonstrate the problem.
* Add the first working version.
* Fix lint issues.
* Add README.md
* Use /_next/main.js as the main file URI
* Add the support for loading the core next bundle.
* Optimize the output by removing Next modules from pages.
* Use the same package.json as master use.
* Change the example repo's README for simpler instructions.
* Change example projects package.json to support next build and start.
* Change main.js into commons.js.
* Add support for hot core reload and errors.
* Introduce require based on eval-script.
* Add error reporting support with hot reloading.
* Update README.md
* add detach-plugin
* detach-plugin: remove unused property
* watch-pages-plugin: replace _error.js when user defined one was added/removed
* dynamic-entry-plugin: delete cache
* fix HMR settings for _error.js
* render: pass error only on dev
* hot-reload: enable to hot-reload error page
* server: check if /_error has compilation errors
* webapck-dev-client: fix reloading /_error