我正在尝试使用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'
}
...
答案 0 :(得分:7)
在这种情况下,请将此添加到您的webpack配置:
{
node: {
__dirname: true
}
}
这将告诉webpack用模块的路径替换__dirname
个实例。此路径相对于context