我正在尝试使用here基于示例zeit/pkg构建小型NextJS示例应用程序的可执行文件。问题是唯一可行的入口点( server.js )似乎给了我很多错误,这些错误目前未在与Webpack编译有关的问题中列出。
如果您只想复制follow the instructions here,然后添加pkg。另外-这是下面的错误输出。
ERROR编译失败,出现2个错误
上午10:48:35找不到这些依赖项:
- @ babel / runtime / helpers /在D:/snapshot/pkg-ssr/node_modules/next/dist/lib/app.js中扩展
- webpack-hot-middleware / client?autoConnect = false&overlay = false&reload = true 在 D:/snapshot/pkg-ssr/node_modules/next/dist/client/webpack-hot-middleware-client.js
要安装它们,可以运行:npm install --save @ babel / runtime / helpers / extends webpack-hot-middleware / client?autoConnect = false&overlay = false&reload = true (节点:15964)弃用警告:Module.chunks:使用 Module.forEachChunk / mapChunks / getNumberOfChunks / isInChunk / addChunk / removeChunk 代替
已准备好http://localhost:3000客户端ping,但是该页面没有条目:/ about {错误:找不到模块 'D:_experiments \ pkg-ssr.next \ build-manifest.json' 在Function.Module._resolveFilename(内部/模块/cjs/loader.js:592:15) 在Function.Module._resolveFilename(pkg / prelude / bootstrap.js:1278:46) 在Function.Module._load(内部/模块/cjs/loader.js:518:25) 在Module.require(内部/模块/cjs/loader.js:648:17) 在Module.require(pkg / prelude / bootstrap.js:1157:31) 在要求时(内部/模块/cjs/helpers.js:20:18) 在_callee3 $(D:\ snapshot \ pkg-ssr \ node_modules \ next \ dist \ server \ render.js:202:29) 在tryCatch(D:\ snapshot \ pkg-ssr \ node_modules \ regenerator-runtime \ runtime.js:62:40) 在Generator.invoke上[作为_invoke](D:\ snapshot \ pkg-ssr \ node_modules \ regenerator-runtime \ runtime.js:296:22) 在Generator.forEach.prototype。(匿名函数)[下一个](D:\ snapshot \ pkg-ssr \ node_modules \ regenerator-runtime \ runtime.js:114:21) 在步骤(D:\ snapshot \ pkg-ssr \ node_modules \ @babel \ runtime \ helpers \ asyncToGenerator.js:12:30) 在_next(D:\ snapshot \ pkg-ssr \ node_modules \ @babel \ runtime \ helpers \ asyncToGenerator.js:27:9) 在process._tickCallback(internal / process / next_tick.js:68:7)代码:'MODULE_NOT_FOUND'}客户端ping,但是没有用于 页面:/ about {错误:找不到模块 'D:_experiments \ pkg-ssr.next \ build-manifest.json' 在Function.Module._resolveFilename(内部/模块/cjs/loader.js:592:15) 在Function.Module._resolveFilename(pkg / prelude / bootstrap.js:1278:46) 在Function.Module._load(内部/模块/cjs/loader.js:518:25) 在Module.require(内部/模块/cjs/loader.js:648:17) 在Module.require(pkg / prelude / bootstrap.js:1157:31) 在要求时(内部/模块/cjs/helpers.js:20:18) 在_callee3 $(D:\ snapshot \ pkg-ssr \ node_modules \ next \ dist \ server \ render.js:202:29) 在tryCatch(D:\ snapshot \ pkg-ssr \ node_modules \ regenerator-runtime \ runtime.js:62:40) 在Generator.invoke上[作为_invoke](D:\ snapshot \ pkg-ssr \ node_modules \ regenerator-runtime \ runtime.js:296:22) 在Generator.forEach.prototype。(匿名函数)[下一个](D:\ snapshot \ pkg-ssr \ node_modules \ regenerator-runtime \ runtime.js:114:21) 在步骤(D:\ snapshot \ pkg-ssr \ node_modules \ @babel \ runtime \ helpers \ asyncToGenerator.js:12:30) 在_next(D:\ snapshot \ pkg-ssr \ node_modules \ @babel \ runtime \ helpers \ asyncToGenerator.js:27:9) 在process._tickCallback(internal / process / next_tick.js:68:7)代码上:'MODULE_NOT_FOUND'}
答案 0 :(得分:0)
就我而言,问题是我没有打包内置的应用程序。我需要做一些事情:
在assets
中指定scripts
和package.json
,如下所示(请注意, dist 实际上是服务器我的情况是因为我有一个自定义服务器和中间件)
"pkg": {
"assets": [
".next/**/*"
],
"scripts": [
".next/dist/**/*.js"
]
},
next build
package.json
。对我而言,最好的命令是他们的default example:pkg .
如果您想将回购和说明与之进行比较,请参阅徐文中的以下文章:https://medium.com/@evenchange4/deploy-a-commercial-next-js-application-with-pkg-and-docker-5c73d4af2ee