Commit graph

2859 commits

Author SHA1 Message Date
Telegin Evgeniy
aa474017d7 Add iOS 10 support for TerserPlugin (#6067)
Resolves #5630
2019-01-16 10:32:47 +01:00
Tim Neutkens
da3c3aded1
Use Object.assign instead of object spread for serverless loader (#6056)
Fixes https://github.com/zeit/now-builders/issues/168

For some reason with a certain mix of deps `...` is not supported in webpack's parsing.
By default it is supported as all our tests passed before and we have deployed Next.js apps on v2 already.
2019-01-15 02:20:20 +01:00
Tim Neutkens
9ab8714f38 v8.0.0-canary.7 2019-01-14 16:19:20 +01:00
Alexander Nanberg
7e7be0e2e8 Revert #6030 (#6052)
* Revert #6030

* Fix _app childContextTypes
2019-01-14 15:41:09 +01:00
Tim Neutkens
189ac8bb1b
Remove /asset from exportPathMap (#6053)
For some reason one test inconsistently failed.
2019-01-14 15:32:55 +01:00
Alexander Nanberg
ff5cf6d4de Migrate next/head to use React.createContext (#6038)
Continuation of #5945
2019-01-14 01:59:26 +01:00
Tim Neutkens
02ab732096
Remove next/asset (#6046)
* Remove next/asset

Reasoning described in #5970

* Remove next/asset tests

* Bring back asset-page
2019-01-14 01:32:20 +01:00
Peter Kellner
341fb9947b fixed spelling not to no (#6044)
small spelling correction
2019-01-13 22:26:21 +01:00
Tim Neutkens
4939583c65 Move @types to devDependencies 2019-01-12 15:22:15 +01:00
Tim Neutkens
f94d24bffc v8.0.0-canary.6 2019-01-12 00:45:34 +01:00
Connor Davis
1edd872f54
Only Minify Whitespace on Serverless Builds (#6037) 2019-01-11 17:15:12 -06:00
Tim Neutkens
f9efe05d4b Add new limit for size 2019-01-11 23:57:38 +01:00
Tim Neutkens
2f22fbf8c2 Replace comment with import() for webpack dynamic entries compat 2019-01-11 22:55:14 +01:00
tangye
ad5431b4ae
should not change method to replaceState unless asPath is the same (#6033)
original code in `/lib/router/router.js`
```
  urlIsNew (pathname, query) {
    return this.pathname !== pathname || !shallowEquals(query, this.query)
  }
```
the urlIsNew compare `this.pathname` to an argument `pathname`
the invokers:
```
    // If asked to change the current URL we should reload the current page
    // (not location.reload() but reload getInitialProps and other Next.js stuffs)
    // We also need to set the method = replaceState always
    // as this should not go into the history (That's how browsers work)
    if (!this.urlIsNew(asPathname, asQuery)) {
      method = 'replaceState'
    }
```
the parameter here is `asPathname` destructured from `asPath`

so here is a problem when we reuse a single page rendered in two asPaths

pages/a.js
```
<>
  <Link href='/a'><a>goto a</a></Link>
  <Link href='/a' as='/b'><a>goto b</a></Link>
</>
```
If we navigate to page /a, then click 'goto b', actually the history is replaced, not pushed.
It is expected that history could be correctly pushed and popped as long as the browser url is changed.
2019-01-11 15:44:25 -06:00
Tim Neutkens
0607638e8f v8.0.0-canary.5 2019-01-11 22:29:15 +01:00
Tim Neutkens
2e9ff91372
Compile next/client and next/pages (#6019)
Because next-routes requires APIs outside of compilation we have to compile these

Fixes https://github.com/fridays/next-routes/issues/274
Fixes #6017
2019-01-11 22:26:27 +01:00
Alexander Nanberg
25fb3f9c2e Migrate next/router to use React.createContext (#6030)
Fixes parts of #5716. I had some issues with the test suite but I'm fairly certain that I got it working correctly.
2019-01-11 16:04:56 +01:00
astenmies
68ceef68e1 Add multiple Editors example (#6031) 2019-01-11 13:48:46 +01:00
Tim Neutkens
3299db9758 Remove router property from _app docs
It’s an inconsistent result, users should use ctx instead. At a later time we’ll normalize the properties passed into _app.js its getInitialprops to be consistent with pages.
2019-01-11 12:03:56 +01:00
Isaac Hinman
3c4e690d1f Add displayName to error page (#6029)
Fixes #6026
2019-01-11 00:30:01 +01:00
Tim Neutkens
2a9b733715 v8.0.0-canary.4 2019-01-10 23:03:25 +01:00
Tim Neutkens
ce3d1914fa
Disable assetSizePlugin in serverless target (#6028) 2019-01-10 23:01:30 +01:00
Tim Neutkens
b547d300d9
Show clear error when client build fails in serverless target (#6027) 2019-01-10 22:10:50 +01:00
Jayden Seric
49fea51f34 Fix Head.propTypes (#6020)
This PR fixes the buggy `Head.propTypes` here:

https://github.com/zeit/next.js/blob/v8.0.0-canary.3/packages/next-server/lib/head.js#L107

Currently, `Head.propTypes` allows one child node like this:

```jsx
import Head from 'next/head'

// …

<Head>
  <title>Title</title>
</Head>
```

But more than one child node mistakenly causes a prop type error like this:

```jsx
<Head>
  <title>Title</title>
  <meta name="description" content="Description." />
</Head>
```

```
Warning: Failed prop type: Invalid prop `children` supplied to `Head`.
```
2019-01-10 12:53:43 +01:00
Jayden Seric
eb24e6ffc6 Add an example with graphql-react (#5984)
Adds an example with [`graphql-react`](https://github.com/jaydenseric/graphql-react), using [`next-graphql-react`](https://github.com/jaydenseric/next-graphql-react).

[`graphql-react`](https://github.com/jaydenseric/graphql-react) is a lightweight but powerful [GraphQL](https://graphql.org) client for React; the first [Relay](https://facebook.github.io/relay) and [Apollo](https://apollographql.com/docs/react) alternative with server side rendering.
2019-01-09 10:24:38 +01:00
Tim Neutkens
a9f71e449d v8.0.0-canary.3 2019-01-09 00:09:15 +01:00
Tim Neutkens
9ffd23eeef
Replace pages-plugin with loader (#5994)
* Remove unused argument

* Replace pages-plugin with loader

* Add loader-utils types

* Remove logs

* Bring back previous deposal behavior

* Remove console.log

* Remove webpack/utils as it’s no longer in use

* Remove hot-self-accept-loader

* Error Recovery tests

* Make hotSelfAccept a noop default loader

* Fix windows deleted/added

* Remove logging

* Remove unused variables

* Remove log

* Simplify entrypoint generation

* Don’t return the function

* Fix _app test

* Remove code that’s always true

* Move aliases to constants

* Use alias

* Join pages alias in reduce

* Default pages differently

* Loop over pages instead of manually defining

* Move entry generation into common function

* Update packages/next/build/webpack/loaders/next-client-pages-loader.ts

Co-Authored-By: timneutkens <tim@timneutkens.nl>

* Update packages/next/build/webpack/loaders/next-client-pages-loader.ts
2019-01-08 23:10:32 +01:00
Peter Kellner
3a3347dc5f The current TypeScript "with-typescript" looks like it was put there as a place holder. I'm fairly new to TypeScript but I'm sure the changes I've made here will be a huge improvement. Open to suggestions and to update as appropriate. Also, Tried to run yarn lint --fix to no avail. I can't figure out how to get it to find lint whether I'm running on my mac or PC. I tried lots of variations around npm i lint -g but had no success. (#6011) 2019-01-08 22:29:58 +01:00
Zack Tanner
f9b98e6cf7 SSR for styled-components babel plugin (fixes #5988) (#6001)
Enables SSR for styled-components babel-plugin to prevent HTML attribute mismatch warnings during rehydration.
2019-01-07 00:12:35 +01:00
Zack Tanner
22f9009816 remove decorator proposal plugin from ant example (fixes #5985) (#6002) 2019-01-07 00:11:16 +01:00
tylim
5d8ae4456e improve with-unstated example (#5998)
improve the example so that it can preserve unstated from server to client unstated
2019-01-06 16:58:06 +01:00
Luc
ba95f7541c Improve assets size (#5999)
It looks like :

```
Pages sizes after gzip:

┌ / (196 B)
├ /_app (11.5 kB)
├ /_error (4.44 kB)
├ /blog (196 B)
└ /blog/page (195 B)
```

(style inspired from now-cli : https://github.com/zeit/now-cli/blob/canary/src/util/output/builds.js)

I'll add dynamic chunks in a separate PR.

@timneutkens Do you want to keep `_app` and `_error` or filter them out ? I think it's a good idea to keep them, because `_app` can get pretty large and it would encourage code splitting in that case.
2019-01-06 16:42:09 +01:00
Juan Olvera
7e12997af6 Test updater script on examples folder (#5993)
I wrote a [script](https://github.com/j0lv3r4/dependency-version-updater) to update dependencies recursively in `package.json` files, e.g.:

```
$ node index.js --path="./examples" --dependencies="react=^16.7.0,react-dom=^16.7.0"
```

This PR contains the result against the examples folder.
2019-01-05 12:19:27 +01:00
Juan Olvera
89a4cabbd6 Change React version of examples to latest (#5990)
I changed the version to the following files:

- [x] - examples/with-next-css/package.json
- [x] - examples/with-draft-js/package.json
- [x] - examples/custom-server-polka/package.json
- [x] - examples/with-cerebral/package.json
- [x] - examples/with-zones/package.json
- [x] - examples/with-universal-configuration-runtime/package.json
- [x] - examples/with-apollo/package.json
- [x] - examples/with-higher-order-component/package.json
- [x] - examples/with-hashed-statics/package.json
- [x] - examples/with-pkg/package.json
- [x] - examples/with-jest/package.json
- [x] - examples/with-glamorous/package.json
- [x] - examples/with-custom-reverse-proxy/package.json
- [ ] - examples/with-emotion/package.json
- [x] - examples/with-styled-jsx-scss/package.json
- [x] - examples/with-styled-jsx-plugins/package.json

`with-emotion/package.json` already has the latest, so I guess it's other packabe. BUT I think we need to update this example with the latest version of `emotion` since it changed a little bit (for better).
2019-01-05 12:16:07 +01:00
Luc
dd9d4cc5e7 rename event-emitter.test.js -> mitt.test.js (#5992) 2019-01-05 12:15:25 +01:00
Luc
fc19b233eb Replace event-emitter.js by mitt (#5987)
This PR aims at replacing next-server/lib/event-emitter.js by mitt.

Fix https://github.com/zeit/next.js/issues/4908

event-emitter.js is ~400 bytes gzipped vs mitt is 200 bytes
2019-01-04 21:49:21 +01:00
iceRao
f40ed302df add README in Chinese (#5046)
* add readme

* 修改中文文档,如中英文空格

* Update README-zh-CN.md

当前翻译版本为 7.0.0-canary.8

* anchor bugfix
2019-01-03 10:37:25 +01:00
Dima
e3499553c4 unnecessary prop store in getInitialProps (#5983) 2019-01-02 21:39:38 +01:00
Kévin Dunglas
c51ac8e8dc Fix typo in a comment (#5982) 2019-01-02 20:21:57 +01:00
Tim Neutkens
7d080760a8 v8.0.0-canary.2 2019-01-02 16:29:19 +01:00
Niklas Wagner
85fd832ed8 Fix rtl-test example & add Snapshot testing (#5981) 2019-01-02 16:28:40 +01:00
Tim Neutkens
fd3cb2a190 v8.0.0-canary.1 2019-01-02 15:07:33 +01:00
Tim Neutkens
56a780c633 Update yarn.lock 2019-01-02 15:06:57 +01:00
Tim Neutkens
07c6e2852f
Export render instead of default for serverless target (#5979)
Extends on #5927, instead of `.default` we'll expose `.render` which is semantically more correct / mirrors the naming of the custom server API.

I've updated the spec in #5927 to reflect this change.

(copied from #5927):

```js
const http = require('http')
const page = require('./.next/serverless/about.js')
const server = new http.Server((req, res) => page.render(req, res))
server.listen(3000, () => console.log('Listening on http://localhost:3000'))
```
2019-01-02 14:59:28 +01:00
Tim Neutkens
672a87d981 v8.0.0-canary.0 2019-01-02 13:59:52 +01:00
Adam Lane
c4b9e079bf Add example of getInitialProps to with-reasonml (#5975)
The current reasonml needs an example of how to do getInitialProps.  tmepple posted the only known way of doing it in [this comment](https://github.com/zeit/next.js/issues/4202#issuecomment-439175214).   It is unlikely reasonml users are going to discover that comment or figure it out on their own so having it in an example is critical. 

Also, dependencies updated.  After updating dependencies, I get this error:
```
ModuleBuildError: Module build failed (from ./node_modules/next/dist/build/webpack/loaders/next-babel-loader.js):
[1] Error: Cannot find module '@babel/core'
[1]  babel-loader@8 requires Babel 7.x (the package '@babel/core'). If you'd like to use Babel 6.x ('babel-core'), you should install 'babel-loader@7'.
```
Seems like @babel/core is required as peer dependency per [this comment](https://github.com/babel/gulp-babel/issues/124#issuecomment-326853222) so I added it.

The way to do getInitialProps has changed in 7.0.2 canary so this also has a comment in the code about what change is required to get that working.
2019-01-02 11:43:19 +01:00
Tim Neutkens
9a9e358911
Use result of getUrl() (#5973)
As getUrl() is already called and passed to initialization: https://github.com/zeit/next.js/blob/canary/packages/next/client/index.js#L46
2019-01-01 02:08:32 +01:00
JJ Kasper
ba8cb31a40 Added WebSocket arg to allow manually setting port (#5963)
Saw a reply on the original pull request that the WebSocket using a random port broke their set up so I added a `--websocket` or `-w` argument similar to the `-p` argument to allow manually setting this port also.
2019-01-01 01:07:10 +01:00
Tim Neutkens
662dfd4271
Drop module.hot from production bundles (#5967) 2018-12-31 19:06:36 +01:00
Tim Neutkens
18cb2c03df
Simplify default title (#5968) 2018-12-31 19:06:03 +01:00