首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >webpack用节点-postgres(‘pg’..Client)导入错误

webpack用节点-postgres(‘pg’..Client)导入错误
EN

Stack Overflow用户
提问于 2017-01-07 14:53:53
回答 4查看 12.4K关注 0票数 10

试图将以下文件与Webpack捆绑在一起的尝试失败了。

未找到./~/pg/lib/本机/index.js模块中的错误:错误:无法解决./node_ Module /pg/lib/lib@./~/pg/lib/天生/index.js 9:13-33中的模块‘pg-本机’

我在ignore中尝试了几个.babelrc语句,但是没有让它运行.

我想捆绑的测试文件: handler.js

代码语言:javascript
复制
const Client = require('pg').Client;

console.log("done");

webpack.config.js

代码语言:javascript
复制
module.exports = {
  entry: './handler.js',
  target: 'node',
  module: {
    loaders: [{
      test: /\.js$/,
      loaders: ['babel'],
      include: __dirname,
      exclude: /node_modules/,
    }]
  }
};

.babelrc

代码语言:javascript
复制
{
  "plugins": ["transform-runtime"],
  "presets": ["es2015", "stage-1"]
}

package.json

代码语言:javascript
复制
"dependencies": {
  "postgraphql": "^2.4.0",
  "babel-runtime": "6.11.6"
},
"devDependencies": {
  "babel-core": "^6.13.2",
  "babel-loader": "^6.2.4",
  "babel-plugin-transform-runtime": "^6.12.0",
  "babel-preset-es2015": "^6.13.2",
  "babel-preset-stage-0": "^6.5.0",
  "babel-polyfill": "6.13.0",
  "serverless-webpack": "^1.0.0-rc.3",
  "webpack": "^1.13.1"
}

一些与github有关的问题:

EN

回答 4

Stack Overflow用户

发布于 2020-10-12 13:17:07

这的确是一条老生常谈,但对我仍然有帮助。Schafer 1提供的解决方案很好,但不是最简单的解决方案。

相反,Marcoüthy 2在链接问题中提供的配置可能是最容易设置的,因为它是纯粹的配置,甚至不需要创建虚拟文件。

它包括修改Webpack配置plugins数组如下:

代码语言:javascript
复制
const webpack = require('webpack');

const webpackConfig = {
  ...
  resolve: { ... },
  plugins: [
    new webpack.IgnorePlugin(/^pg-native$/)
    // Or, for WebPack 4+:
    new webpack.IgnorePlugin({ resourceRegExp: /^pg-native$/ })
  ],
  output: { ... },
  ...
}

更新以包括在评论中建议的修改。

票数 14
EN

Stack Overflow用户

发布于 2020-01-08 19:37:56

这是一个古老的线索,但问题仍然存在,所以对于任何经历它的人来说,都有一个解决办法。问题在于编写node-postgres的方式与babel重写代码的方式之间的交互,即使在不显式导入/要求代码的情况下,这也会迫使加载pg-native

最简单的解决方法是将两个别名添加到您的webpack.config.js中,使其链接到一个虚拟的“无所事事”文件中:

代码语言:javascript
复制
{
  ...
  resolve: {
    alias: {
      ...
      'pg-native': path-to-dummy-js-file,
      'dns': path-to-dummy-js-file
    }
  }
  ...
}

其中,虚拟文件包含一行:

代码语言:javascript
复制
export default null

有关进一步讨论和替代解决方案,请参见https://github.com/brianc/node-postgres/issues/838

票数 7
EN

Stack Overflow用户

发布于 2022-07-29 20:13:38

我知道这是一个古老的话题,但我不得不分享我是如何解决这个问题的。这件事令人抓狂。

因此,这是读者文摘的版本,这是基于我对上一个脑细胞的回忆。

错误:

Webpack编译错误./node_modules/pg/lib/本机/client.js模块未找到:错误:无法解析‘pg-本机’

上述错误是在试图运行需要npm包'pg‘的Cypress测试时抛出的。

试图安装pg-native package没有成功,并导致另一个错误,即->

调用'pg_config --libdir‘返回退出状态1,而在binding.gyp中。当尝试加载binding.gyp时

我发现在pg_config --libdir cmd提示符中执行VSCode会导致该命令失败。

但是,我知道它应该可以工作,因为在系统命令提示符下运行该命令会导致这个-> C:/PROGRA~1/POSTGR~1/9.3/lib

这是包含所需dll的路径。

因此,我没有从npm install命令提示符中运行VSCode,而是从命令提示符中运行它,就像从windows启动一样。

Result...success!pg-native已成功安装。

之后,柏树测试也得以运行。

现在的错误帮助我找到了这个解决方案。更简单的是检查是否安装了所需的东西等等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41522744

复制
相关文章

相似问题

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