我开始了我的项目,到目前为止一切顺利。
npm run start > mk-market@0.1.0 start > next start ready - started server on 0.0.0.0:3000, url: http://localhost:3000 info - Loaded env from /Users/...../market/.env.local warn - You have enabled experimental feature (appDir) in next.config.js. warn - Experimental features are not covered by semver, and may cause unexpected or broken application behavior. Use at your own risk. info - Thank you for testing `appDir` please leave your feedback at https://nextjs.link/app-feedback
但是在此之后不再有控制台输出,不在发出请求并且不在我的文件中保存更改时,它会输出服务器端 console.logs()
。
该页面在我的浏览器中运行(位于 localhost:3000
)。但是当我保存更改时(假设添加 <h1>Hello</h1>
),我没有自动重新编译。并且 npm run start
也不进行任何更改。获取新保存的更改的唯一方法是运行 npm run build
,然后运行 npm run start
这种情况过去发生在我身上,我让它再次工作的唯一方法就是开始一个全新的项目。但现在我已经有点太过分了。
我疯狂地用谷歌搜索,但我能找到的唯一密切相关的是应用程序文件夹中页面命名中的大写字母,但这里的情况并非如此。
另外,我刚刚使用 npm create-next-app
创建了一个全新的项目,但同样的事情正在发生。运行 npm run start
时我得到:
Error: Could not find a production build in the '/Users/erikingman/MK/mk-test/.next' directory. Try building your app with 'next build' before starting the production server. https://nextjs.org/docs/messages/production-start-no-build-id at NextNodeServer.getBuildId (/Users/erikingman/MK/mk-test/node_modules/next/dist/server/next-server.js:352:23) at new Server (/Users/erikingman/MK/mk-test/node_modules/next/dist/server/base-server.js:146:29) at new NextNodeServer (/Users/erikingman/MK/mk-test/node_modules/next/dist/server/next-server.js:166:9) at NextServer.createServer (/Users/erikingman/MK/mk-test/node_modules/next/dist/server/next.js:167:24) at async /Users/erikingman/MK/mk-test/node_modules/next/dist/server/next.js:187:31 at async NextServer.prepare (/Users/erikingman/MK/mk-test/node_modules/next/dist/server/next.js:149:24) at async Server.<anonymous> (/Users/erikingman/MK/mk-test/node_modules/next/dist/server/lib/render-server.js:109:17) { type: 'Error' }
我必须运行 npm run build
才能运行它,我不记得过去为新项目这样做过。
这是一个对我有用的简单解决方案。
在命令提示符下检查 Node JS 的版本,输入
node -p "process.arch"
如果您使用的是 32 位,则需要升级到 64 位,安装新的 Node JS,然后重新启动 PC ,然后就可以了。您没有使用正确的开发模式命令。这是
npm run dev
而不是npm run start
。启动是为了部署,在npm 运行 build
后起作用。这就是您应该在
package.json
的scripts
部分中看到的内容: