尝试使用“ pkg”构建“ nextjs”应用会导致依赖项错误和/或构建后出现404错误

时间:2018-08-27 21:19:02

标签: next.js zeit-pkg

我正在尝试使用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'}

  

1 个答案:

答案 0 :(得分:0)

就我而言,问题是我没有打包内置的应用程序。我需要做一些事情:

  • assets中指定scriptspackage.json,如下所示(请注意, dist 实际上是服务器我的情况是因为我有一个自定义服务器和中间件)

    "pkg": { "assets": [ ".next/**/*" ], "scripts": [ ".next/dist/**/*.js" ] },

  • 首先使用next build
  • 构建应用
  • 然后确保无论使用哪种方式构建软件包,都使用package.json。对我而言,最好的命令是他们的default examplepkg .

如果您想将回购和说明与之进行比较,请参阅徐文中的以下文章:https://medium.com/@evenchange4/deploy-a-commercial-next-js-application-with-pkg-and-docker-5c73d4af2ee