diff --git a/bin/next-start b/bin/next-start
index dd34b3a82e220045f9151035db30f43b4618d0b8..62eca75b80024c775afdcafe5c25a1e9ef7c01e7 100755
--- a/bin/next-start
+++ b/bin/next-start
@@ -42,8 +42,8 @@ const dir = resolve(argv._[0] || '.')
const srv = new Server({ dir })
-if (!existsSync(resolve(dir, '.next'))) {
- console.error(`> Could not find the '.next' directory! Try building your app with 'next build' before starting the server.`)
+if (!existsSync(resolve(dir, '.next', 'BUILD_ID'))) {
+ console.error(`> Could not find a valid build in the '.next' directory! Try building your app with 'next build' before starting the server.`)
process.exit(1)
}
diff --git a/examples/with-react-md/pages/index.js b/examples/with-react-md/pages/index.js
index d1f8d3a25ee51342106a0a138920d68102851880..d8757c81d767752c6185c48811ba53b13f6170a0 100644
--- a/examples/with-react-md/pages/index.js
+++ b/examples/with-react-md/pages/index.js
@@ -1,6 +1,8 @@
import Head from 'next/head'
import Link from 'next/link'
+import { PureComponent } from 'react'
+
import Avatar from 'react-md/lib/Avatars'
import Button from 'react-md/lib/Buttons/Button'
import FontIcon from 'react-md/lib/FontIcons'
@@ -28,17 +30,23 @@ const drawerHeaderChildren = [
/>
]
-const NavigationLink = (props) => {
- const { href, as, children, ..._props } = props
- return (
-
- )
+class NavigationLink extends PureComponent {
+ // NOTE: Don't try using Stateless (function) component here. `ref` is
+ // required by React-MD/AccessibleFakeButton, but Stateless components
+ // don't have one by design:
+ // https://github.com/facebook/react/issues/4936
+ render () {
+ const { href, as, children, ..._props } = this.props
+ return (
+
+ )
+ }
}
export default () => {
diff --git a/server/build/webpack.js b/server/build/webpack.js
index c0a0ffe093ece61354be62d86bc84f5ac7bb228b..a3a61c17aa900659311d11bf9a84a1afdb57bb6f 100644
--- a/server/build/webpack.js
+++ b/server/build/webpack.js
@@ -154,11 +154,12 @@ export default async function createCompiler (dir, { dev = false, quiet = false
if (!(/\.js$/.test(interpolatedName))) {
return { content, sourceMap }
}
-
+ const babelRuntimePath = require.resolve('babel-runtime/package')
+ .replace(/[\\/]package\.json$/, '')
const transpiled = babelCore.transform(content, {
presets: [require.resolve('babel-preset-es2015')],
sourceMaps: dev ? 'both' : false,
- // Here we need to resolve styled-jsx/style to the absolute paths.
+ // Here we need to resolve all modules to the absolute paths.
// Earlier we did it with the babel-preset.
// But since we don't transpile ES2015 in the preset this is not resolving.
// That's why we need to do it here.
@@ -168,7 +169,16 @@ export default async function createCompiler (dir, { dev = false, quiet = false
require.resolve('babel-plugin-module-resolver'),
{
alias: {
- 'styled-jsx/style': require.resolve('styled-jsx/style')
+ 'babel-runtime': babelRuntimePath,
+ react: require.resolve('react'),
+ 'react-dom': require.resolve('react-dom'),
+ 'react-dom/server': require.resolve('react-dom/server'),
+ 'next/link': require.resolve('../../lib/link'),
+ 'next/prefetch': require.resolve('../../lib/prefetch'),
+ 'next/css': require.resolve('../../lib/css'),
+ 'next/head': require.resolve('../../lib/head'),
+ 'next/document': require.resolve('../../server/document'),
+ 'next/router': require.resolve('../../lib/router')
}
}
]