Comments (9)
Are you exporting the default component?
Export default component
e.g. as a class
class Homepage extends React.Component{
render(){
return (<main> Hello World </main>);
}
}
export default HomePage;
or as a pure function:
const HomePage = () => (
<main>Hello World</main>
)
export default HomePage
Config
PS: My tsconfig
was the one autogenerated by nextjs
{
"compilerOptions": {
"target": "es5",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"strict": false,
"forceConsistentCasingInFileNames": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve"
},
"exclude": [
"node_modules"
],
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx"
]
}
from next-plugins.
Hi, I replicated your example and everything is working as expected, No errors whatsoever in pages
Try updating packages, or remove node_modules
and install them again
from next-plugins.
I had a similar problem with TypeScript and I had to change my tsconfig.json
to the following:
{
"target": "esnext",
"module": "esnext",
"moduleResolution": "node",
"jsx": "preserve",
// ...
}
from next-plugins.
For the record, if you are using "module": "commonjs"
so you can use a custom server.js, then you must also set "target": "es5"
and everything will be OK. Not sure why that works but that is the fix.
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
// ...
}
}
from next-plugins.
It only works for me when I set module to "esnext" and create a separate tsconfig.json for my custom server.ts with module "commonjs".
But then I'm still left with the problem that running my tests in jest doesn't work, because the jest run is done in node so it would require commonjs but then I can't import the files that are compiled to esnext.
I'm not using next-typescript though, maybe that will fix it. No time to test it this moment though.
from next-plugins.
https://github.com/zeit/next.js/tree/canary/examples/with-jest-typescript
from next-plugins.
@timneutkens yes, that's what I hadn't had time yet to test.
Turns out for some reason I still can't get it to work in my project. Which lead me to see vercel/next.js#3663 which is closed but other people have the same problem as well.
It works fine in the example, but I cannot get my actual project to run tests properly. It's always either "unexpected token import" or "unexpected token" at <MyComponent> (fails to transpile tsx?).
There is something really wrong there and I'm ~65% sure it has to do with esnext default imports/exports. But I think next.js issue #3663 is the one where this should be continued.
from next-plugins.
Are you exporting the default component?
Export default component
e.g. as a class
class Homepage extends React.Component{ render(){ return (<main> Hello World </main>); } } export default HomePage;or as a pure function:
const HomePage = () => ( <main>Hello World</main> ) export default HomePageConfig
PS: My
tsconfig
was the one autogenerated by nextjs{ "compilerOptions": { "target": "es5", "lib": [ "dom", "dom.iterable", "esnext" ], "allowJs": true, "skipLibCheck": true, "strict": false, "forceConsistentCasingInFileNames": true, "noEmit": true, "esModuleInterop": true, "module": "esnext", "moduleResolution": "node", "resolveJsonModule": true, "isolatedModules": true, "jsx": "preserve" }, "exclude": [ "node_modules" ], "include": [ "next-env.d.ts", "**/*.ts", "**/*.tsx" ] }
This solved my issue, just forgot to add my export at the bottom.
from next-plugins.
TLDR: I am using next v9.5.3
and the problem was with my tsconfig.json
- update the target, libs and module to es5 or esnext. or use the node12 base as described below.
For anyone finding themselves here - I got caught on this error as I had extended the tsconfig recommended base rather then the node12 base
Once I did this nextjs asked me to add a couple more things like "jsx": "preserve"
and then we were up and running.
from next-plugins.
Related Issues (20)
- Can not install @zeit/next-css HOT 1
- Yarn 2 - missing webpack@^4.0.0 dependency in @zeit/next-css@npm:1.0.1 HOT 1
- Cannot get CSS variables to work with npm module. HOT 2
- @zeit/next-workers: ValidationError: Invalid options object. HOT 3
- antd style does not take effect HOT 1
- with-less will disable build in css-loader HOT 2
- Absolute import with TypeScript produces errors with non ts files
- devtool option isn't working with useSourceMap HOT 4
- Unable to load fonts from SCSS using NextJS 9.5.5 HOT 1
- Source maps resolved wrongly @zeit/next-source-maps HOT 2
- @zeit/next-sass has to be updated to use node-sass v5 HOT 2
- Loading background image from SCSS doesn't work HOT 1
- Style hot reload not triggered with legacy @zeit/next-css or @zeit/next-less plugins HOT 1
- next-workers not working in Next 10? HOT 3
- Module parse failed using next-less in a typescript next js project
- CSS and SCSS with NextJS (issue while using multiple loaders: next-sass, next-css) HOT 1
- Error: PostCSS plugin tailwindcss requires PostCSS 8. HOT 1
- `localIdentName` default value for `dev` HOT 1
- Webpack plugin InjectManifest nextjs source maps "You must provide the URL of lib/mappings.wasm by calling SourceMapConsumer.initialize({ 'lib/mappings.wasm': ... }) before using SourceMapConsumer"
- less config error HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from next-plugins.