1
0
Fork 0
mirror of https://github.com/terribleplan/next.js.git synced 2024-01-19 02:48:18 +00:00
Commit graph

469 commits

Author SHA1 Message Date
Tim Neutkens e093441bad Universal Webpack (#3578)
* Speed up next build

* Document webpack config

* Speed up next build

* Remove comment

* Add comment

* Clean up rules

* Add comments

* Run in parallel

* Push plugins seperately

* Create a new chunk for react

* Don’t uglify react since it’s already uglified. Move react to commons in development

* Use the minified version directly

* Re-add globpattern

* Move loaders into a separate variable

* Add comment linking to Dan’s explanation

* Remove dot

* Add universal webpack

* Initial dev support

* Fix linting

* Add changes from Arunoda's work

* Made next dev works.
But super slow and no HMR support.

* Fix client side hot reload

* Server side hmr

* Only in dev

* Add on-demand-entries client + hot-middleware

* Add .babelrc support

* Speed up on demand entries by running in parallel

* Serve static generated files

* Add missing config in dev

* Add sass support

* Add support for .map

* Add cssloader config and fix .jsx support

* Rename

* use same defaults as css-loader. Fix linting

* Add NoEmitErrorsPlugin

* Add clientBootstrap

* Use webpackhotmiddleware on the multi compiler

* alpha.3

* Use babel 16.2.x

* Fix reloading after error

* Remove comment

* Release 5.0.0-univeral-alpha.1

* Remove check for React 16

* Release 5.0.0-universal-alpha.2

* React hot loader v4

* Use our static file rendering machanism to serve pages.
This should work well since the file path for a page is predictable.

* Release 5.0.0-universal-alpha.3

* Remove optional loaders

* Release 5.0.0-universal-alpha.4

* Remove clientBootstrap

* Remove renderScript

* Make sure pages bundles are served correctly

* Remove unused import

* Revert to using the same code as canary

* Fix hot loader

* Release 5.0.0-universal-alpha.5

* Check if externals dir exist before applying config

* Add typescript support

* Add support for transpiling certain packages in node_modules

Thanks to @giuseppeg’s work in https://github.com/zeit/next.js/pull/3319

* Add BABEL_DISABLE_CACHE support

* Make sourcemaps in production opt-in

* Revert "Add support for transpiling certain packages in node_modules"

This reverts commit d4b1d9babfb4b9ed4f4b12d56d52dee233e862da.

In favor of a better api around this.

* Support typescript through next.config.js

* Remove comments

* Bring back commons.js calculation

* Remove unused dependencies

* Move base.config.js to webpack.js

* Make sure to only invalidate webpackDevMiddleware one after other.

* Allow babel-loder caching by default.

* Add comment about preact support

* Bring back buildir replace

* Remove obsolete plugin

* Remove build replace, speed up build

* Resolve page entries like pages/day/index.js to pages/day.js

* Add componentDidCatch back

* Compile to bundles

* Use config.distDir everywhere

* Make sure the file is an array

* Remove console.log

* Apply optimization to uglifyjs

* Add comment pointing to source

* Create entries the same way in dev and production

* Remove unused and broken pagesGlobPattern

* day/index.js is automatically turned into day.js at build time

* Remove poweredByHeader option

* Load pages with the correct path.

* Release 5.0.0-universal-alpha.6

* Make sure react-dom/server can be overwritten by module-alias

* Only add react-hot-loader babel plugin in dev

* Release 5.0.0-universal-alpha.7

* Revert tests

* Release 5.0.0-universal-alpha.10

* Make sure next/head is working properly.

* Add wepack alias for 'next' back.

* Make sure overriding className in next/head works

* Alias react too

* Add missing r

* Fragment fallback has to wrap the children

* Use min.js

* Remove css.js

* Remove wallaby.js

* Release 5.0.0-universal-alpha.11

* Resolve relative to workdir instead of next

* Make sure we touch the right file

* Resolve next modules

* Remove dotjsx removal plugins since we use webpack on the server

* Revert "Resolve relative to workdir instead of next"

This reverts commit a13f3e4ab565df9e2c9a3dfc8eb4009c0c2e02ed.

* Externalize any locally loaded module lives outside of app dir.

* Remove server aliases

* Check node_modules reliably

* Add symlink to next for tests

* Make sure dynamic imports work locally.
This is why we need it: b545b519b2/lib/MainTemplate.js (L68)
We need to have the finally clause in the above in __webpack_require__.
webpack output option strictModuleExceptionHandling does that.

* dynmaic -> dynamic

* Remove webpack-node-externals

* Make sure dynamic imports support SSR.

* Remove css support in favor of next-css

* Make sure we load path from `/` since it’s included in the path matching

* Catch when ensurepage couldn’t be fulfilled for `.js.map`

* Register require cache flusher for both client and server

* Add comment explaining this is to facilitate hot reloading

* Only load module when needed

* Remove unused modules

* Release 5.0.0-universal-alpha.12

* Only log the `found babel` message once

* Make sure ondemand entries working correctly.
Now we are just using a single instance of OnDemandEntryHandler.

* Better sourcemaps

* Release 5.0.0-universal-alpha.13

* Lock uglify version to 1.1.6

* Release 5.0.0-universal-alpha.14

* Fix a typo.

* Introduce multi-zones support for mircofrontends

* Add section on css
2018-01-30 16:44:44 +01:00
Tim Neutkens 963695820f Make sure pages bundles are served correctly 2018-01-13 08:34:48 +01:00
Tim Neutkens bba744d3fa Merge branch 'master' into fix/canary 2018-01-13 06:33:19 +01:00
Arunoda Susiripala 0b6575b470 Use our static file rendering machanism to serve pages.
This should work well since the file path for a page is predictable.
2018-01-13 10:36:50 +05:30
Tim Neutkens e179c98aa8
Revert "remove relative path to babel-runtime (#3119)" (#3547)
This reverts commit 8eb8034236.

# Conflicts:
#	server/build/webpack.js
2018-01-08 16:44:52 +01:00
Tim Neutkens 57a0fc432c
Clean up webpack config, increase build speed (#3487)
* Speed up next build

* Document webpack config

* Speed up next build

* Remove comment

* Add comment

* Clean up rules

* Add comments

* Run in parallel

* Push plugins seperately

* Create a new chunk for react

* Don’t uglify react since it’s already uglified. Move react to commons in development

* Use the minified version directly

* Re-add globpattern

* Move loaders into a separate variable

* Add comment linking to Dan’s explanation

* Remove dot
2018-01-03 13:43:48 +01:00
Arunoda Susiripala 337fb6a9aa Remove buildId from dynamic import URLs (#3498)
* Use without .js for the filename.

* Modify the chunk filename to add .js via webpack

* Add import chunk's hash to the filename via webpack.

* Remove buildId from dynamic import urls.

* Make sure next-export work with dynamic imports
2017-12-27 19:59:17 +01:00
Tim Neutkens c23046dc79
Rewrite combine-asset-plugin using correct event (#3486)
* Speed up next build

* Remove comment

* Add comment

* Add comments
2017-12-22 10:25:35 +01:00
Maciej Kasprzyk a3aa870b74 feat: error when exported path has no backslash (#3456) 2017-12-14 13:22:04 -08:00
Tyll Weiß 702dd5d3f4 Resolve the next.config.js up the tree to avoid it not being loaded when a source dir was specified via the CLI - solves #3379 (#3380) 2017-12-13 18:49:26 -08:00
Tim Neutkens 52ccc14059 Merge branch 'canary'
# Conflicts:
#	examples/with-markdown/readme.md
#	lib/page-loader.js
#	package.json
#	server/build/plugins/pages-plugin.js
2017-12-08 15:11:37 -08:00
Tim Neutkens 66e3a6c5ea Remove webpack-stats.json 2017-12-08 14:42:39 -08:00
PrudviGali bd20deb9ba dynamic imports fix for non-webpack environments. (#3414)
* Added condition to check whether method exists or not

* Conditional loop based on feature detection

* Added code comments as requested by the author
2017-12-07 17:50:38 -08:00
Patryk 732696e840 Add a charset to the default Content-Type (#3333) 2017-12-05 16:00:58 -08:00
Tim Neutkens e2bcb039cf
Add .jsx extension support (#3376)
* Add .jsx extension

* examples: add create-next-app (#3377)

* examples: add create-next-app

* fix with-typescript readme

* Upgrading with-flow example to the latest flow-bin ver. 0.59.0 (#3337)

For upgrading I used flow-upgrade module by https://yarnpkg.com/en/package/flow-upgrade

* doc'd fs-routing option & added note on `passHref` (#3384)

2 changes:

`passHref` - just added a cautionary note on the importance of `passHref`. We had a few days of no-href links on our site b/c we used a custom component instead of a raw `<a>` tag,  and Google bot wasn't crawling our links (confirmed in Google cache). Hurt our SEO a bit, so I thought it was worth noting.


`useFileSystemPublicRoutes` - this is mentioned in https://github.com/zeit/next.js/pull/914 , but it doesn't appear any doc was actually added. We use `next-routes`, and we were serving all the files in `/pages/` in addition to their route patterns (ie duplicate content), which can be a pain w/ SEO and duplicate content.

* fix typo in readme.md (#3385)

* Upgrade styled-jsx to v2.2.1 (#3358)

* Pulled encoding to top of head (#3214)

* Remove next.d.ts to use @types/next (#3297)

* Add with-mobx-state-tree example (#3179)

* Adapt with-mobx example for with-mobx-state-tree

* Remove unnecessary lastUpdate parameter to show off snapshot

* update readme

* make other.js more closely mimic index.js

* Upgrade styled-jsx to v2.2.1

Includes some bug fixes.

* Fix linting

* Make sure import that doesn’t end in .jsx works

* Move tests

* Show error when .js and .jsx both exist

* Remove .jsx when importing from ‘path.jsx’

* Fixes

* Get .jsx resolver back

* Revert "Get .jsx resolver back"

This reverts commit 6f76712caa400e6f41a6a32ff80189a95b194cce.

* Revert "Revert "Get .jsx resolver back""

This reverts commit 69e592e86e53f28d0e1f78009196b76f2f831866.

* Add remove .jsx to preset

* Remove jsx resolver

* Revert "Remove jsx resolver"

This reverts commit 5e3ef1aca134de47657d91485809cd801e13329f.

* Revert "Revert "Remove jsx resolver""

This reverts commit 8248e5066cff1c7e33dac2e5a88ffe6856e3fc4e.

* Revert "Revert "Revert "Remove jsx resolver"""

This reverts commit 2a6d418a227ea4e59874b0374628ef497e527c52.

* Make 1 component not use .jsx
2017-12-05 15:46:06 -08:00
Arunoda Susiripala 820e3ff716
Always load pages with ".js" extension (#3393)
* Always fetch pages with '.js' extention from client side.

* Load error page always from _error.js rather _error/index.js

* Load pages from page.js instead of page/index.js from the client for static exports.

* Update index.js

* Simplify the path re-write logic in the webpack pages-plugin.
2017-12-05 04:49:53 +05:30
Giuseppe 5daafa4f87 Upgrade styled-jsx to v2.2.1 (#3358)
* Pulled encoding to top of head (#3214)

* Remove next.d.ts to use @types/next (#3297)

* Add with-mobx-state-tree example (#3179)

* Adapt with-mobx example for with-mobx-state-tree

* Remove unnecessary lastUpdate parameter to show off snapshot

* update readme

* make other.js more closely mimic index.js

* Upgrade styled-jsx to v2.2.1

Includes some bug fixes.

* Fix linting
2017-12-04 08:15:30 -08:00
Tim Neutkens 36f6179a52 Check if tmpdir is writeable. Not full path 2017-12-02 09:52:34 -08:00
Tim Neutkens 8cd6bd3fc3
Add check for writeable directory (#3370)
* Add check for writeable directory

Followup of https://github.com/zeit/now-cli/issues/175

* Add link to docs
2017-12-02 18:13:39 +01:00
Roman Vanesyan 01f05d8cbc Another round of removing extra <div> (#3373) 2017-12-02 18:00:40 +01:00
Adam Stankiewicz eefab8fb3e Disable comparisons to fix mapbox-gl bundling (#3346) 2017-11-28 14:19:14 +01:00
Roman Vanesyan 7a08e1b5f8 Remove extra div (#3327)
* Replace extra div with React fragment.

* Fix linter

* Replace extra div with React fragment.

* Fix linter

* fix script tag, backport nonce attribute
2017-11-23 22:12:52 +01:00
Saro Vindigni 8eb8034236 remove relative path to babel-runtime (#3119) 2017-11-23 14:02:09 +01:00
yashha a0e0f851c2 Pulled encoding to top of head (#3214) 2017-11-16 11:54:36 +01:00
Jess Telford 80a1603189 Use uglify-es for minification (#3150) 2017-11-13 12:19:51 +01:00
Isaac Ellmen dc07cd1b19 Set Cache-Control max-age to a year (#3247) 2017-11-09 21:27:01 +01:00
Mattias Hällkvist 3eac0bc35d Make pages glob pattern overridable (#3195) 2017-11-05 22:27:31 +01:00
Tim Neutkens 1424b84c98
Allow overriding Content-Type (#3242)
* Allow overriding Content-Type

* Mock getHeader
2017-11-05 20:17:03 +01:00
Sam Gluck 828dac7d61 Use fs.realpath to get actual project directory (#3243)
* resolve base dir symlink

* fix method name
2017-11-05 20:05:15 +01:00
Tim Neutkens 18f8ab392a Merge branch 'master' into canary
# Conflicts:
#	examples/with-apollo/lib/initApollo.js
#	examples/with-apollo/package.json
#	examples/with-react-with-styles/package.json
#	examples/with-static-export/package.json
#	package.json
2017-11-05 11:01:59 +01:00
Li Weinan 190853b4ff Support de-deduping head tags by setting key (#3170)
* Support de-deduping head tags by setting key

* move dedupe logic to `unique` function

* fix head tag deduping logic

* remove console.log

* use `toContain` assertions

* update de-duping head tags section in README
2017-10-31 22:52:51 +01:00
Kevin Decker 6e44cdef5f Expose mechanism to monitor render events (#2655)
* Allow custom clientBootstrap entrypoint

This allows for customization of the client global bootstrap.

* Expose render event emitter to client

* Include client entry point in npm package
2017-10-30 16:01:40 +01:00
Kevin Decker 53a2c5a7fc Combine source maps (#3178)
* Propagate source maps through combine assets step

* Use constant development build id

* Move combine assets step before uglify step

This ensures that uglify will catch these changes.

* Move dynamic chunks step before uglify step

This ensures that uglify will catch these changes.

* Use chunk templates for page and dynamic chunks

This is a little more in line with how webpack generates its bootstrap and should have better compatibility with other plugins and source map generation.

* Register combined source map with chunks

This ensures that a sourcemap is fully generated.

* Do not minimize combined map inputs
2017-10-30 15:57:35 +01:00
Kevin Decker 1e15105837 Output webpack build stats as webpack-stats.json (#2828) 2017-10-30 15:55:44 +01:00
Tim Neutkens 03324880a8 Add asPath on the server (#3149)
* Add asPath on the server

* Make sure we don’t include `?` when there is no query
2017-10-22 12:00:31 -07:00
Tim Neutkens 8e55adf4ec Render error as errorHtml (#3142) 2017-10-21 16:47:55 -07:00
Tim Neutkens 1cc3dbe35b Revert "Sourcemap and Breakpoint Fixes (#3121)"
This reverts commit 964f229f98.
2017-10-20 08:02:04 +02:00
Kevin Decker 964f229f98 Sourcemap and Breakpoint Fixes (#3121)
* Propagate source maps through combine assets step

* Use constant development build id
2017-10-19 22:11:37 +02:00
Dylan Staley f1f83507db Use nonce attribute for inline script if provided (#3129) 2017-10-19 21:30:34 +02:00
Tim Neutkens e9d14613d4 Make styled-jsx configurable (#3050)
* Make styled-jsx configurable

* Add styled-jsx-plugin-postcss example

* Add styled-jsx 2.1.0 with plugins support

* Move examples around and add description

* Add link to new example
2017-10-15 19:54:57 +02:00
Arunoda Susiripala 0c8dca6f97 Warn and exit if React 15 used inside the project. (#3061)
This usually helps when upgrading Next.js.
2017-10-09 13:25:12 -07:00
Tom MacWright 559c25253e Configurable opts for babel-preset-env + babel-plugin-transform-runtime (#2991)
* Configurable opts for babel-preset-env + babel-plugin-transform-runtime

This adds `preset-env` and `transform-runtime` options to the
`next/babel` Babel preset, which are then passed through to those
presets and transforms. This allows configuration to keep next.js
from the default 'maximum' transform, and instead use built-in
implementations of globals, classes, async, and other commonly-supported
features.

Fixes #2989

* Use spread notation instead of Object.assign
2017-10-07 08:38:59 +02:00
Jesse Ditson a79357f2a4 Allow use of filenames in exportPathMap (#2973)
* allow use of filenames in exportPathMap

* add link test and handling for file paths when flattening links for export

* add note about exporting file paths to readme.md
2017-10-05 20:33:10 +02:00
AugustinLF 36436122f2 Keep some buffered pages, that won't be disposed. Fix #1939 (#2592)
* Keep some buffered pages, that won't be disposed. Fix #1939

* With reworked buffer
2017-09-28 14:51:03 +02:00
Craig Mulligan a50e440cf1 Pass conf to export function (#2962)
* Pass conf to export function

* conf -> configuration
2017-09-27 20:48:46 +02:00
Marc MacLeod ddd30787ef expose buildId to custom webpack configs (#3001)
* expose buildId to custom webpack configs

* update readme to include buildId in option object
2017-09-27 08:03:29 +02:00
Mic Wehrle 27f517d27d Fix error messages in server/export.js (#2933) 2017-09-10 13:13:48 +02:00
Kevin Decker 5c67fd6811 Do not mutate browser source map object (#2900)
Fixes regression caused by #2478
2017-09-04 20:27:19 +02:00
Arunoda Susiripala 8f874f050c [WIP] Use buildId in chunk urls as well (#2873)
Use buildId in chunk urls as well
2017-08-31 05:47:06 +05:30
Kevin Decker d600957aeb Add node trace source map handling in dev mode (#2816)
* Add node trace source map handling in dev mode

Fixes #2285

* Fix typo in comment
2017-08-30 16:19:40 +05:30
Tim Neutkens eba9ebef5f Merge v3-beta into master (#2809)
* Add examples/with-redux-code-splitting. (#2721)

* #1757 Relay Modern Example (#2696)

* Add ReasonML example (#2640)

* Add ReasonML example

* Add a gitignore specifically for the reasonml example

* Allow custom className for <Main /> (#2802)

* 3.0.2

* Remove beta information from the README.

* 3.0.3

* Remove unnecessary lookup in example with emotion (#2731)

* Document SCSS/Less (#2742)

* Document SCSS/Less

* Add missing word

* Add docs for examples dir

* Add extra example

* uppercase J

* Add with pkg example (#2751)

* Add custom server micro example (#2750)

* Ease running multiple examples at the same time with process.env.PORT (#2753)

* Add line-height rule for error page h2 (#2761)

* Add support for fetching multiple translation files (#2743)

* Add support for fetching multiple translation files

* Cleanup

* Clear missed interval (#2611)

* clear missed interval

* remove trailing whitespace

* Relay Modern Example (#1757) (#2773)

* Simplification of Relay Modern Example (#1757) (#2776)

* Use deterministic names for dynamic import (#2788)

* Always use the same name for the same dynamic import.

* Add unit tests for the modulePath generation.

* Allow tests to run correctly on Windows.

* Make the chunk name a bit pretty.

* Fix tests to run on Windows.

* 3.0.4

* Revert "Make the chunk name a bit pretty." (#2792)

This reverts commit 0c9e8cf2271955e74ab9f752b5869b98c1dc60f9.

* 3.0.5

* Use _ as the divider for dynamic import name splitter. (#2793)

Using - gives us some weird webpack errors.

* 3.0.6

* next/dynamic Error Message Tweaks (#2798)

* Fixed issue (#2804)

https://github.com/zeit/next.js/issues/2800

* docs(material-ui): move the source code to Material-UI repository (#2808)
2017-08-27 22:13:35 +02:00
Tim Neutkens 75a43f5a71 Make sure we do not expose stacktraces in production (#2843) 2017-08-25 02:47:38 +05:30
Jay Cheroske 9c18c548bb Pass an HOC to renderPage() (#2010)
* Added passing an HOC to renderPage()

* Remove gitignore
2017-08-21 23:15:14 +02:00
Arunoda Susiripala a730b04df7 Use _ as the divider for dynamic import name splitter. (#2793)
Using - gives us some weird webpack errors.
2017-08-17 02:25:27 +05:30
Arunoda Susiripala ddff22c0d3 Revert "Make the chunk name a bit pretty." (#2792)
This reverts commit 0c9e8cf2271955e74ab9f752b5869b98c1dc60f9.
2017-08-17 00:28:30 +05:30
Arunoda Susiripala 68738d1c90 Use deterministic names for dynamic import (#2788)
* Always use the same name for the same dynamic import.

* Add unit tests for the modulePath generation.

* Allow tests to run correctly on Windows.

* Make the chunk name a bit pretty.

* Fix tests to run on Windows.
2017-08-16 22:44:00 +05:30
Arunoda Susiripala 6477492f62 Move NPM modules out of the commons chunk in dev mode. (#2716)
This is only a dev feature and it removes an error in HMR.
Otherwise it'll throw an error with undefined error in the webpack core.
2017-08-07 12:36:24 +05:30
崔宁 67697afa44 Remove the extra plugin (#2670) 2017-07-28 10:45:04 +05:30
Arunoda Susiripala 10241fe610 Fix the route redirect error when we've multiple path params. (#2652)
For an example, with a URL like: /static/data/hello.txt
2017-07-26 22:31:49 +05:30
Arunoda Susiripala 564dbdd237 Add a test case to prevent issue #2617 to happen again. 2017-07-24 11:43:45 +05:30
Arunoda Susiripala 7965cb299d Merge master into v3-beta. 2017-07-24 10:10:29 +05:30
Arunoda Susiripala c03c86ee5e Make sure /static/ and /_next/ are valid internal urls. (#2631) 2017-07-24 10:04:06 +05:30
Tim Neutkens 2c7d0ec47a Uppercase location for consistency (#2622) 2017-07-23 19:50:48 +02:00
Arunoda Susiripala 2f7e459210 Make dynamic import spec compliant. (#2612)
* Make dynamic import spec compliant.
Now we simply return the whole module incl. default field
In 'next/dynamic' we pick the default field if there is.
Since modules with default is mostly used next/dynamic, for the enduser, this change has no effect.

* Rename module into m
Using module could be confusing.
2017-07-20 23:21:04 +05:30
Arunoda Susiripala c97aca50e5 Show webpack errors in all pages. (#2588)
* Show webpack errors in all pages.
When there's a webpack error that means HMR failed too.
So, showing other pages won't makes sense since user
can't edit them and get changes via HMR.
That's why now we show the error on all pages.

* Remove exact propType checks from the error component.
When there's an error, something this check shows in the console.
That means it could accept more props.
Also this is not a public API. So, we don't want to do propType checks.
2017-07-18 12:30:23 +05:30
Arunoda Susiripala d831e6d39c Webpack's ModuleConcatenationPlugin plugin doesn't work well with HMR. (#2584)
So, now we only use it for production.
2017-07-17 22:16:39 +05:30
Arunoda Susiripala af7b875a18 Make sure module.context exist always (#2580)
Fixes #2578
2017-07-17 11:11:37 +05:30
Arunoda Susiripala b1b0b88945 Move react-dom into commons.js always. (#2572) 2017-07-16 15:48:21 +05:30
Arunoda Susiripala f25055c9f7 Load the hot-reloader when only needed. (#2566)
This reduce the server boot-up time a lot.
With a 2015 MacBook Pro, it went down from 1000ms to 200ms
2017-07-15 18:29:10 +08:00
Kevin Decker bd24e74a98 Support webpack harmony modules in self accept (#2510) 2017-07-10 10:10:32 +05:30
Arunoda Susiripala 783ecdefd2 Merge branch 'master' into v3-beta 2017-07-09 09:57:56 +05:30
fridays 9cc8d26a68 fix regex for pages that end with index (#2505) 2017-07-09 09:50:30 +05:30
Arunoda Susiripala 4563f68ad5 Revert "Emit ES6 code for module source in emit file load" (#2501)
* Revert "Update emotion example to use css instead of fragment (#2497)"

This reverts commit 5bd3a5f1d1.

* Revert "Fix "Deploy to now" link (#2489)"

This reverts commit df1cd7ebf3.

* Revert "Emit ES6 code for module source in emit file load (#2478)"

This reverts commit 3f50abcb51.
2017-07-08 11:07:17 +05:30
Kevin Decker 3f50abcb51 Emit ES6 code for module source in emit file load (#2478)
Previously the commonjs modules were being passed into webpack dependency layer, preventing tree shaking.
2017-07-07 09:48:00 +05:30
Arunoda Susiripala 1c7b2603d4 Block special pages from the public. (#2479)
Otherwise, users could invoke 500 errors.
2017-07-06 17:59:25 +05:30
Arunoda Susiripala c5c270c576 Merge master into v3-beta. 2017-07-06 12:24:31 +05:30
Kyle Kelley 5a840cc39e allow cleaning from non-cwd (#2451) 2017-07-05 10:49:35 +05:30
Arunoda Susiripala 9395718ee1 Consider using distDir config for dynamic chunks. (#2436) 2017-07-02 11:23:15 +05:30
Tim Neutkens c8e8cb5e52 Check if parsedUrl is an object (#2066) 2017-07-02 11:22:39 +05:30
Arunoda Susiripala 304225d9ea Optimize the bundle size of Next.js core (#2422)
* Try to the slim the webpack output.

* Remove react-hot-loader completely from production.
2017-07-01 12:54:16 +05:30
Ian Mitchell ac3c59b9f4 Removes Windows Webpack Polling (#2359) 2017-06-30 12:20:18 +05:30
Arunoda Susiripala 247dd98cf3 Add a better filename to the dynamic import chunk. (#2397)
With this we can see the import name in the filename.
This helps a lot in debugging and analyzing the webpack
bundle.
2017-06-29 05:55:13 +05:30
Arunoda Susiripala 655018c0e7 Merge master into v3-beta 2017-06-29 00:51:05 +05:30
Arunoda Susiripala 23c2f02f56 Make it easy and meaningful to analyze the bundle. (#2393) 2017-06-29 00:46:21 +05:30
Xuezheng Ma 4eb86dc5f8 Added proper error for running next start on dev build (#2337)
* Added proper error for running `next start` on dev build

* Check if build exist before usage

* Move BUILD_ID check from bin/next-start to server/index.js

* Check env before checking build
2017-06-26 22:18:56 +02:00
Dan Zajdband 87e01f681b Fix #2353 - server render parameters (#2356) 2017-06-24 04:38:05 +05:30
C. T. Lin 213d7a82d1 update webpack to v3 (#2349)
* update webpack to v3

* Use exact versions.
2017-06-23 10:44:40 +05:30
Felix-Antoine Paradis d2149da54d Add the ability to pass next configuration to production builds (#2345) 2017-06-23 09:18:06 +05:30
Sasha Aickin 9c2db29166 Fixed an issue where two-page sites didn't split code. (#2329) 2017-06-21 09:57:24 +05:30
Arunoda Susiripala fe77397f26 Make sure internal url always has 200 status code. (#2299)
Even the user set it to something else via custom server api.
2017-06-19 12:57:35 +05:30
Arunoda Susiripala 0c4362e440 Load chunks in SSR mode only if they exists in the filesystem (#2196)
* Always check with the fs when gettings chunks.

* Add a new set of test cases for dynamic imports in dev.

* Add dynamic import test cases for production.

* Add availableChunks support for static exports.
2017-06-08 19:41:22 +02:00
Henrik 9c1898f2c8 Allow custom head attributes (#2189)
* fix(package): update babel-preset-env to version 1.5.2

* Allow Custom head attributes

This PR allows to add static attributes to the `document/head
2017-06-08 19:27:54 +02:00
David Corwin ca9146c421 support custom build directory in next export (#2135)
* use custom build directory instead of .next if specified, helpful log messages.

* Remove some unwanted newlines.
2017-06-08 07:09:45 +05:30
Arunoda Susiripala 13a51e0a75 Merge master into v3-beta. 2017-06-07 11:43:05 +05:30
Arunoda Susiripala 7cd2bb69ea Squashed commit of the following:
commit ced48c3fcfd1880016b08590e1b50827247b7cfb
Author: Arunoda Susiripala <arunoda.susiripala@gmail.com>
Date:   Wed Jun 7 11:28:43 2017 +0530

    Make sure XSS fix doesn't break our 404 support.

commit d40c833aa16660d547df785bb52e69ecf9a717f2
Author: Arunoda Susiripala <arunoda.susiripala@gmail.com>
Date:   Wed Jun 7 09:08:41 2017 +0530

    Prevent url path based XSS attacks.
2017-06-07 11:37:28 +05:30
Arunoda Susiripala 8cb3e89455 Merge master into v3-beta. 2017-06-07 04:24:36 +05:30
Arunoda Susiripala 937d0e2bb6 [WIP] Reload webpack if needed (#2076)
* Reload webpack via hot-reloader when needed.
We need to do this specially we removed a previosly
built page from the filesystem.

* Make sure reloading is happen only once

* Reload only if there's a missing page error.

* Remove debug logs.

* 2.4.2

* Refactor the codebase a bit.

* Move some commonly used regexp to a utils module.

* Handle the reloading well when there's a custom error page.

* Add a HMR test case.

* Close the browser in the test case.
2017-06-06 15:32:02 -07:00
Arunoda Susiripala 0191d2eb1b Merge branch 'master' into v3-beta 2017-06-05 20:39:07 +05:30
Arunoda Susiripala 24f511f343 When detecting changed pages in hot-reloader use only pages. (#2171) 2017-06-05 20:37:20 +05:30
Arunoda Susiripala f342624f14 Merge master with v3-beta 2017-06-05 15:19:33 +05:30
Arunoda Susiripala 443abba94a Fix HMR http request timeout issue under node 8. (#2166)
The fix is to add a heartbeat less than 5 secs.
2017-06-05 11:02:13 +02:00
Guillermo Rauch 850a931e88 Merge branch 'master' into v3-beta 2017-06-01 18:30:57 -07:00
Arunoda Susiripala 43c447edd0 Implement the fix. 2017-06-01 05:46:32 +05:30
Felix-Antoine Paradis 442c611d49 Add next configuration as an option for custom servers (#2058)
* Add a configuration parameter to custom server startup

* Adding related documentation

* Do not access filesystem if configuration is supplied

* Make the configuration log clearer

* Make the conf default value to `null`
2017-05-31 13:36:07 +05:30
George Pantazis 2953a01c43 Make file-system based routes optional for custom servers (#914) 2017-05-27 21:10:15 +05:30
Arunoda Susiripala 9121a9d22e Never cache assets and HTML in the dev mode. (#2045)
* Never cache assets and HTML in the dev mode.

* Move etags test to the production.

Now it won't work in dev because of no-cache settings.
2017-05-25 18:28:08 +02:00
Arunoda Susiripala 3c95f21d8c Do not try to server unnessesary files in either dev or prod. (#2048) 2017-05-23 10:30:14 -07:00
Xuezheng Ma d36118ab02 Check if _document.js returns a react element before using (#2013)
* Check if _document.js returns a react element before using

* Use capital letter R in 'React'
2017-05-20 00:02:01 +02:00
Arunoda Susiripala 92b0a690be Add a default value of '{}' to query in the export mode. (#2003) 2017-05-18 10:54:57 +05:30
Tim Scanlin a8fdbb261e delete files only from outDir (#2001) 2017-05-18 09:58:22 +05:30
Guillermo Rauch b0a9161462 fix typo 2017-05-16 09:41:35 -07:00
Arunoda Susiripala aeaccf441b Add dynamic-import support for next-export. 2017-05-15 10:03:35 +05:30
Arunoda Susiripala 4d0147385c Merge v3-beta in dynamic-imports 2017-05-15 09:41:42 +05:30
Arunoda Susiripala 55c7553a98 Merge master into next-export. 2017-05-15 09:15:50 +05:30
Arunoda Susiripala c40ded0c12 Copy the static directory for static file serving. 2017-05-14 05:41:13 +05:30
Tim Neutkens b8f336c747 Add custom webpack dev middleware config (#1931) 2017-05-13 16:44:21 -07:00
Arunoda Susiripala 430789b99f By default print some messages to the console.
Also added a silent option if someone don't want
those messages.
2017-05-11 09:23:08 -07:00
Arunoda Susiripala 4be25270c6 Do not include /_document.js when running 'next export' 2017-05-11 08:59:29 -07:00
Arunoda Susiripala 2796c08ef7 Fix '/' page serving issue.
It was xxxx/page//index.js
2017-05-11 06:20:58 -07:00
Arunoda Susiripala 6f674b8c0a Get rid of realPathname for consistant page file structure. 2017-05-10 20:01:42 -07:00
Arunoda Susiripala 98ed666ca6 merge master into next-export 2017-05-10 19:01:01 -07:00
Arunoda Susiripala 2f4a662a48 Fix windows sub-path dev rebuild failed issue. (#1930)
* Fix windows sub-path dev rebuild failed issue.

* Make sure we apply the '\' replace only on windows.
2017-05-10 08:09:48 +02:00
Arunoda Susiripala 450277f294 Make sure next export doesn't break other modes. 2017-05-09 00:42:48 -07:00
Arunoda Susiripala 147a5ce641 Fix server rendering issue for normal apps. 2017-05-08 23:42:37 -07:00
Arunoda Susiripala 42f1d2efda Add a way to customize the output directory. 2017-05-08 19:10:55 -07:00
Arunoda Susiripala 71296cceb3 Add the verbose mode. 2017-05-08 18:53:08 -07:00
Arunoda Susiripala 311e4ca0ee Make sure the router is aware of the nextExport
Based on the we can change the routing to do SSR always.
Also make sure pageLoader don't download the page via
client side twice.
2017-05-08 18:20:50 -07:00
Arunoda Susiripala d4aa2b0408 Allow create dynamic content. 2017-05-08 10:22:32 -07:00
Arunoda Susiripala dcc3228429 Allow next export to build html pages. 2017-05-07 23:10:26 -07:00
Arunoda Susiripala be2e5a8c23 Use the realPathname for script tags in document.js
This will help us to fetch these scripts directly from a
static server since these paths are resolved.
2017-05-07 19:36:11 -07:00
Arunoda Susiripala f602f6dc1e Copy all the static assests to .out 2017-05-07 15:47:40 -07:00
Arunoda Susiripala 5153d6958b Use development babel presets if it's we are not in production. (#1895)
Otherwise, user has to expose it's env variable as development.
Usually, that's unlikely to happen.
2017-05-06 00:07:50 -07:00
Arunoda Susiripala 8268905d2f Use cheap module inline source map (#1894)
* Fix the page-loader-normalization issue on '/index' page.

* Use cheap-module-inline-source-map as the default devtool.
2017-05-05 23:54:47 -07:00
ateev 3fbccff936 remove elliptic precomputed folder 2017-05-05 02:14:25 +05:30
Arunoda Susiripala 383eec3604 We are using some divs to wrap some script tags. (#1867)
We don't need them.
So, this change will remove them.
2017-05-03 15:03:39 -07:00
Arunoda Susiripala ee9dba9ea7 React react-dom/server minified alias. (#1862)
That's simply because it has no effect since we don't run webpack on the server.
And for the server, file size difference doesn't matter a lot.
2017-05-03 13:59:21 -07:00
Arunoda Susiripala 24f3f143a6 Introduce "asPath" into router and getInitialProps (#1857)
* Add asPath to next/router and getInitialProps context.

* Add test cases.

* Update docs.

* Build as-path pages before they use.
2017-05-03 09:40:09 -07:00
Luke Edwards 87773b98dc add react production aliases (#1855) 2017-05-02 18:27:18 -07:00
Dieter Luypaert cb635dd9a5 use configured distDir where required (#1816) 2017-05-01 17:42:01 -07:00
Arunoda Susiripala 358cfb3a29 Make dynamic import support to work with HMR. 2017-04-27 12:41:02 -07:00
Arunoda Susiripala 686dd4c4dd Merge master into dynamic-import. 2017-04-27 08:48:43 -07:00
Arunoda Susiripala 84d00ad14d Always send an error to client if there is. (#1800)
In the production, we need to send a dummy error.
2017-04-25 09:45:58 +05:30
Arunoda Susiripala da775f2e11 Fix error pages' cdn cache issue. (#1794)
We do this by providing some headers mentioning not to cache.
2017-04-24 13:48:34 -07:00
Arunoda Susiripala ea77b41570 Use babel-loader 7 beta. (#1495)
* Use babel-loader 7 beta.
This will get rid of the DeprecationWarning printed while
starting next.
Also this is the version recommened to use with Webpack 2.

* Update to the babel-loader-7
2017-04-22 07:18:53 +05:30
Arunoda Susiripala 17329edcc9 Handle require.ensure errors well.
Introduce a new Promise library which runs on the same eventloop.
2017-04-19 23:55:06 +05:30
Arunoda Susiripala 90ea471aa7 Merge master into dynamic-import. 2017-04-18 21:42:21 +05:30
Arunoda Susiripala f82e52935d Implement ETag support for server rendered pages. (#1693) 2017-04-18 21:15:42 +05:30
Arunoda Susiripala e0f71d8448 Use babel-preset-env instead of babel-preset-latest. (#1701)
Here we don't use the full capabilities of babel-preset-env.
But it's recommended to use it without browser configs as
a substitute for babel-preset-latest.
That's why we did this.
2017-04-18 19:28:34 +05:30
Arunoda Susiripala b3f15f8d5c Fix a typo. (#1749) 2017-04-18 19:14:26 +05:30
Arunoda Susiripala dec85fe6c4 Add CDN support with assetPrefix (#1700)
* Introduce script tag based page loading system.

* Call ensurePage only in the dev mode.

* Implement router using the page-loader.

* Fix a typo and remove unwanted code.

* Fix some issues related to rendering.

* Fix production tests.

* Fix ondemand test cases.

* Fix unit tests.

* Get rid of eval completely.

* Remove all the inline code.

* Remove the json-pages plugin.

* Rename NEXT_PAGE_LOADER into __NEXT_PAGE_LOADER__

* Rename NEXT_LOADED_PAGES into __NEXT_LOADED_PAGES__

* Remove some unwanted code.

* Load everything async.

* Remove lib/eval-script.js
We no longer need it.

* Move webpack idle wait code to the page-loader.
Because that's the place to do it.

* Remove pageNotFound key from the error.

* Remove unused error field 'buildError'

* Add much better logic to normalize routes.

* Get rid of mitt.

* Introduce a better way to register pages.

* Came back to the mitt() based page-loader.

* Add link rel=preload support.

* Add assetPrefix support to add support for CDNs.

* Add assetPrefix support for preload links.

* Update readme.md
2017-04-17 21:18:43 -07:00