我正在尝试在我的neo4j-driver
项目中使用node.js
:
var neo4j = require('neo4j-driver').v1;
// neo4j cypher helper module
const USERNAME = "neo4j";
const PASSWORD = "neo4j";
const URI = "bolt://localhost:7687";
const driver = neo4j.driver(URI, neo4j.auth.basic(USERNAME, PASSWORD));
const session = driver.session();
当我正在运行webpack
时,它会给我以下错误:
> ./node_modules/neo4j-driver/lib/v1/internal/host-name-resolvers.js中的错误 找不到模块:错误:无法解决问题' dns' in' / home / nikita / Desktop / kipnis_prototype / BrainImmuneConnectome / node_modules / neo4j-driver / lib / v1 / internal'
readline
,tls
,net
的类似错误。怎么可以解决?
我的webpack.config.js
:
var path = require('path');
module.exports = {
entry: {
app: './views/index.js'
//vendor: ["react","react-dom"]
},
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, './public')
},
devtool: "#eval-source-map",
module: {
rules: [{
test: /\.jsx?$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader?cacheDirectory=true',
}
}]
},
node: {
fs: 'empty'
},
resolve: {
extensions: ['.js', '.jsx']
}
};
我确信数据库的一切都很好。该错误类似于以下github
线程:
https://github.com/neo4j/neo4j-javascript-driver/issues/192
然而,我的导入是正确的,所以我很困惑。
更新
安装loader-utils
对此问题没有帮助:
Why can't webpack find any module from my React Webapp?
更新
提供neo4j-driver
的整个路径后:
var neo4j_driver = require('../node_modules/neo4j-driver/lib/browser/neo4j-web.min.js');
webpack
运行正常,所以我想它现在找到了驱动程序,但是,当我尝试运行该应用程序时,会显示另一个错误:
Neo4jError: Fatal: No compatible transport available. Need to run on a
platform with the WebSocket API.
更新
我发现我无法指定整个路径,无论如何它应该是require("neo4j-driver")
。然后在以下链接中:
https://github.com/request/request/compare/master...pho3nixf1re:webpack-tests
externals
部分在webpack
配置文件中指定:
...
externals: {
fs: '{}',
tls: '{}',
net: '{}',
console: '{}'
}
将此部分添加到我的webpack.config.js
允许运行webpack和应用程序而不会在node.js
控制台中出错,但是,浏览器会在这种情况下生成另一个错误,显然与{{1 }}:
更新
上面neo4j-driver
中的上一个错误是由不合适的Update
模块导入引起的,因此在修复应用程序开始按原样运行后,问题现在已经解决了。
答案 0 :(得分:2)
将externals
部分添加到webpack.config.js
解决了这个问题:
externals: {
fs: '{}',
tls: '{}',
net: '{}',
dns: '{}',
readline: '{}'
}