gpt4 book ai didi

node.js - Webpack 不能使用__dirname?

转载 作者:搜寻专家 更新时间:2023-10-31 22:23:47 24 4
gpt4 key购买 nike

我正在尝试使用 node-postgres 将我的应用程序连接到 Postgres。我使用的代码是:

import React from 'react';
import pg from 'pg';
import fs from 'fs';
var cn = {
host: 'localhost', // server name or IP address;
port: 5432,
database: 'my_db',
user: 'myname',
password: 'mypass'
};

它会产生错误:

index.js:5 Uncaught ReferenceError: __dirname is not defined
up @ index.js:5
__webpack_require__ @ bootstrap 539ecc7…:19
(anonymous function) @ client.js:4
__webpack_require__ @ bootstrap 539ecc7…:19
(anonymous function) @ index.js:3
console.EventEmitter._events @ index.js:81
__webpack_require__ @ bootstrap 539ecc7…:19
(anonymous function) @ app.js:26957
__webpack_require__ @ bootstrap 539ecc7…:19
content @ bootstrap 539ecc7…:39
__webpack_require__ @ bootstrap 539ecc7…:19
(anonymous function) @ bootstrap 539ecc7…:39
(anonymous function) @ bootstrap 539ecc7…:39
webpackUniversalModuleDefinition @ universalModuleDefinition:7
(anonymous function) @ universalModuleDefinition:10

控制台提供的index.js上的路径是webpack:///./~/pg/~/pgpass/lib/index.js:5

我在 how to write file with node webkit js? 尝试了@Renzo Poddighe 的解决方案但我仍然遇到同样的错误。我认为这可能与https://github.com/nwjs/nw.js/wiki/Differences-of-JavaScript-contexts#resolving-relative-paths-to-other-scripts的讨论有关。和 https://github.com/nwjs/nw.js/issues/264 .他们说

// __dirname is not defined in webkit context, this is only node.js thing
console.log(__dirname); // undefined

__dirname 在 Node.js 模块中工作,即在使用 require() 调用的 JavaScript 代码中工作。__dirname 不仅在 WebKit 脚本中有效,即在使用 HTML 调用的 JavaScript 代码中,或 jQuery 的 $.getScript() 或任何其他类似方法中。

有什么想法吗?让我知道我需要包含哪些其他信息。

编辑

我想我的目标是

var config = {
entry: { app: './src/index.jsx'},
output: {
libraryTarget: 'umd',
path: path.join(__dirname, 'dist'),
filename: '[name].js'
}, ...

我的 webpack.config.js 看起来像:

...
node: {
console: true,
__dirname: true,
dns: 'empty',
fs: 'empty',
net: 'empty',
tls: 'empty'
}
...

最佳答案

在这种情况下,将其添加到您的 webpack 配置中:

{
node: {
__dirname: true
}
}

这将告诉 webpack 将 __dirname 实例替换为模块的路径。此路径相对于 context

关于node.js - Webpack 不能使用__dirname?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36090842/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com