首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pg-native failing native on native on native native

Pg-native failing native on native on native native
EN

Stack Overflow用户
提问于 2020-12-24 17:08:55
回答 1查看 571关注 0票数 1

我对我的无服务器项目有一个问题。

这是我的webpack配置:

代码语言:javascript
复制
// webpack.config.js
const path = require('path');
const webpack = require('webpack');

module.exports = {
  target: 'node',
  plugins: [
    new webpack.IgnorePlugin({ resourceRegExp: /^pg-native$/})
  ],
  module: {
    rules: [
      {
        loader: 'ts-loader',
        options: {
        transpileOnly: true
        },
      }
    ]
  },
  resolve: {
    extensions: ['.ts', '.js', '.tsx', '.jsx']
  },
  output: {
    libraryTarget: 'commonjs',
    path: path.join(__dirname, '.webpack'),
    filename: 'handler.js'
  },
  mode: 'development'
};

和我的serverless.yml:

代码语言:javascript
复制
provider:
  name: aws
  region: "eu-west-1"
  stage: dev
  timeout: 10

custom:
  webpack:
    webpackConfig: webpack.config.js
    includeModules: false # this is telling webpack to reference all dependencies (non-dev dependencies) in node_modules and serverless would upload the package.json with the node_modules folder
    # forceExclude:
    #    - pg-native
package:
    individually: true

plugins:
  - serverless-webpack
  - serverless-plugin-typescript
  - serverless-offline

和package.json:

代码语言:javascript
复制
"dependencies": {
    "@babel/types": "^7.12.12",
    "@types/aws-lambda": "^8.10.61",
    "@types/bcrypt": "^3.0.0",
    "@types/bcryptjs": "^2.4.2",
    "@types/gapi": "0.0.39",
    "@types/pg": "^7.14.7",
    "@types/uuid": "^8.3.0",
    "axios": "^0.21.0",
    "bcryptjs": "^2.4.3",
    "googleapis": "^66.0.0",
    "pg": "^8.5.1",
    "query-string": "^6.13.7",
    "serverless": "^1.78.1",
    "serverless-offline": "^6.5.0",
    "serverless-plugin-typescript": "^1.1.9",
    "typescript": "^3.9.7"
  },
  "devDependencies": {
    "@babel/core": "^7.12.9",
    "@babel/preset-env": "^7.12.7",
    "@types/jest": "^26.0.16",
    "babel-jest": "^26.6.3",
    "copy-webpack-plugin": "^7.0.0",
    "jest": "^26.6.3",
    "serverless-webpack": "^5.3.5",
    "ts-jest": "^26.4.4",
    "ts-loader": "^8.0.12",
    "webpack": "^5.11.0",
    "webpack-node-externals": "^2.5.2"
  }

我无法删除的错误是:

代码语言:javascript
复制
PS C:\Users\sg\Desktop\CODE\sc-server> serverless deploy
Serverless: Running "serverless" installed locally (in service node_modules)
Serverless: Configuration warning at root: unrecognized property 'name'
Serverless:
Serverless: Learn more about configuration validation here: http://slss.io/configuration-validation
Serverless:
Serverless: Bundling with Webpack...
asset handler.js 340 KiB [emitted] (name: handler)
modules by path ./node_modules/ 279 KiB 56 modules
19 modules

ERROR in ./node_modules/pg/package.json
Module build failed (from ./node_modules/ts-loader/index.js):
Error: Debug Failure. Output generation failed
    at Object.transpileModule (C:\Users\sg\Desktop\CODE\sc-server\node_modules\typescript\lib\typescript.js:123670:29)
    at getTranspilationEmit (C:\Users\sg\Desktop\CODE\sc-server\node_modules\ts-loader\dist\index.js:390:75)
    at successLoader (C:\Users\sg\Desktop\CODE\sc-server\node_modules\ts-loader\dist\index.js:38:11)
    at Object.loader (C:\Users\sg\Desktop\CODE\sc-server\node_modules\ts-loader\dist\index.js:23:5)
 @ ./node_modules/pg/lib/native/client.js 5:10-39
 @ ./node_modules/pg/lib/native/index.js 2:0-36
 @ ./node_modules/pg/lib/index.js 23:28-47 34:32-51
 @ ./initialization/Database.ts 4:13-26
 @ ./handler.ts 4:19-55

webpack compiled with 1 error in 89280 ms
 
  Error --------------------------------------------------

  Error: Webpack compilation error, see above
      at C:\Users\sg\Desktop\CODE\sc-server\node_modules\serverless-webpack\lib\compile.js:36:17
      at arrayEach (C:\Users\sg\Desktop\CODE\sc-server\node_modules\lodash\lodash.js:516:11)
      at Function.forEach (C:\Users\sg\Desktop\CODE\sc-server\node_modules\lodash\lodash.js:9368:14)
      at C:\Users\sg\Desktop\CODE\sc-server\node_modules\serverless-webpack\lib\compile.js:29:9
      at tryCatcher (C:\Users\sg\Desktop\CODE\sc-server\node_modules\bluebird\js\release\util.js:16:23)
      at Promise._settlePromiseFromHandler (C:\Users\sg\Desktop\CODE\sc-server\node_modules\bluebird\js\release\promise.js:547:31)
      at Promise._settlePromise (C:\Users\sg\Desktop\CODE\sc-server\node_modules\bluebird\js\release\promise.js:604:18)
      at Promise._settlePromise0 (C:\Users\sg\Desktop\CODE\sc-server\node_modules\bluebird\js\release\promise.js:649:10)
      at Promise._settlePromises (C:\Users\sg\Desktop\CODE\sc-server\node_modules\bluebird\js\release\promise.js:729:18)
      at Promise._fulfill (C:\Users\sg\Desktop\CODE\sc-server\node_modules\bluebird\js\release\promise.js:673:18)
      at C:\Users\sg\Desktop\CODE\sc-server\node_modules\bluebird\js\release\nodeback.js:42:21
      at finalCallback (C:\Users\sg\Desktop\CODE\sc-server\node_modules\webpack\lib\MultiCompiler.js:375:12)
      at C:\Users\sg\Desktop\CODE\sc-server\node_modules\webpack\lib\MultiCompiler.js:398:6
      at done (C:\Users\sg\Desktop\CODE\sc-server\node_modules\neo-async\async.js:2931:13)
      at runCompilers (C:\Users\sg\Desktop\CODE\sc-server\node_modules\webpack\lib\MultiCompiler.js:285:48)
      at C:\Users\sg\Desktop\CODE\sc-server\node_modules\webpack\lib\MultiCompiler.js:292:7
      at C:\Users\sg\Desktop\CODE\sc-server\node_modules\webpack\lib\MultiCompiler.js:391:7
      at finalCallback (C:\Users\sg\Desktop\CODE\sc-server\node_modules\webpack\lib\Compiler.js:388:32)
      at C:\Users\sg\Desktop\CODE\sc-server\node_modules\webpack\lib\Compiler.js:452:17
      at C:\Users\sg\Desktop\CODE\sc-server\node_modules\webpack\lib\HookWebpackError.js:69:3
      at Hook.eval [as callAsync] (eval at create (C:\Users\sg\Desktop\CODE\sc-server\node_modules\webpack\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:6:1)        
      at Hook.CALL_ASYNC_DELEGATE [as _callAsync] (C:\Users\sg\Desktop\CODE\sc-server\node_modules\webpack\node_modules\tapable\lib\Hook.js:18:14)
      at Cache.storeBuildDependencies (C:\Users\sg\Desktop\CODE\sc-server\node_modules\webpack\lib\Cache.js:122:37)
      at C:\Users\sg\Desktop\CODE\sc-server\node_modules\webpack\lib\Compiler.js:448:19
      at Hook.eval [as callAsync] (eval at create (C:\Users\sg\Desktop\CODE\sc-server\node_modules\webpack\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:15:1)       
      at Hook.CALL_ASYNC_DELEGATE [as _callAsync] (C:\Users\sg\Desktop\CODE\sc-server\node_modules\webpack\node_modules\tapable\lib\Hook.js:18:14)
      at C:\Users\sg\Desktop\CODE\sc-server\node_modules\webpack\lib\Compiler.js:445:23
      at Compiler.emitRecords (C:\Users\sg\Desktop\CODE\sc-server\node_modules\webpack\lib\Compiler.js:820:39)
      at C:\Users\sg\Desktop\CODE\sc-server\node_modules\webpack\lib\Compiler.js:437:11
      at C:\Users\sg\Desktop\CODE\sc-server\node_modules\webpack\lib\Compiler.js:802:14
      at Hook.eval [as callAsync] (eval at create (C:\Users\sg\Desktop\CODE\sc-server\node_modules\webpack\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:6:1)        
      at Hook.CALL_ASYNC_DELEGATE [as _callAsync] (C:\Users\sg\Desktop\CODE\sc-server\node_modules\webpack\node_modules\tapable\lib\Hook.js:18:14)
      at C:\Users\sg\Desktop\CODE\sc-server\node_modules\webpack\lib\Compiler.js:799:27
      at C:\Users\sg\Desktop\CODE\sc-server\node_modules\neo-async\async.js:2818:7
      at done (C:\Users\sg\Desktop\CODE\sc-server\node_modules\neo-async\async.js:3522:9)
      at Hook.eval [as callAsync] (eval at create (C:\Users\sg\Desktop\CODE\sc-server\node_modules\webpack\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:6:1)        
      at Hook.CALL_ASYNC_DELEGATE [as _callAsync] (C:\Users\sg\Desktop\CODE\sc-server\node_modules\webpack\node_modules\tapable\lib\Hook.js:18:14)
      at C:\Users\sg\Desktop\CODE\sc-server\node_modules\webpack\lib\Compiler.js:667:33
      at C:\Users\sg\Desktop\CODE\sc-server\node_modules\graceful-fs\graceful-fs.js:144:16
      at C:\Users\sg\AppData\Roaming\npm\node_modules\serverless\node_modules\graceful-fs\graceful-fs.js:144:16
      at C:\Users\sg\AppData\Roaming\npm\node_modules\serverless\node_modules\graceful-fs\graceful-fs.js:61:14
      at FSReqCallback.oncomplete (fs.js:146:23)
 
     For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable.

  Get Support --------------------------------------------
     Docs:          docs.serverless.com
     Bugs:          github.com/serverless/serverless/issues
     Issues:        forum.serverless.com

  Your Environment Information ---------------------------
     Operating System:          win32
     Node Version:              12.14.1
     Framework Version:         2.13.0 (local)
     Plugin Version:            4.1.2
     SDK Version:               2.3.2
     Components Version:        3.4.2

这里有人有什么建议吗?我尝试添加别名,尝试使用排除包(就像当前在webpack.config中一样),但都无济于事。

EN

回答 1

Stack Overflow用户

发布于 2021-05-25 12:57:43

关于pg-native是C++的问题的评论忽略了关键点:pg模块在浏览器和节点上都可以工作,但Webpack感到困惑,并试图打包本机模块。

简单的解决方案是在Webpack配置中排除pg-native。这很好用。

一个陷阱是,当我把Webpack从4升级到5的时候,我之前的工作设置坏了。

以下是对我有效的方法:

Webpack 5:

代码语言:javascript
复制
new webpack.IgnorePlugin({ resourceRegExp: /^pg-native$/}),

Webpack 4:

代码语言:javascript
复制
new webpack.IgnorePlugin(/^pg-native$/),
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65436190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档