我做了创建反应应用程序,并安装了sequelize和pg.但是当我开始运行时,我收到以下错误 –
./node_modules/pg/lib/connection-parameters.js
找不到模块:无法解析’/ Users / vedant / Web Dev / device_psql / node_modules / pg / lib’中的’dns’
这是App.js文件 –
import React,{ Component } from 'react'; const Sequelize = require('sequelize'); const sequelize = new Sequelize('postgres','postgres','password',{ host: 'localhost',dialect: 'postgres',pool: { max: 5,min: 0,acquire: 30000,idle: 10000 },// http://docs.sequelizejs.com/manual/tutorial/querying.html#operators operatorsAliases: false }); class App extends Component { render() { return ( <div > <p>Test</p> </div> ); } } export default App;
另外,在package.json文件中,我有sequelize和pg.可能是什么问题呢?我试图删除node_modules文件夹并执行npm install,但没有运气.
提前致谢.
解决方法
之所以发生这种情况,是因为您的某个软件包使用的是JavaScript承诺,它依赖于dns模块,该模块仅在Node.js(服务器端)中可用,而不是在您的代码在浏览器中运行时.虽然实现依赖于它,但它不需要它工作,因此您可以通过伪造dns模块的存在来解决问题.
为此,请按照下列步骤操作:
创建一个文件夹/ src / mock / dns.在此文件夹中,创建一个包含以下内容的文件index.js:
module.exports = {}; module.exports.default = {};
同样在此文件夹中,创建一个包含以下内容的文件package.json:
{ "name": "dns","version": "3.1.0","private": true }
在根package.json中,将以下行添加到依赖项:
"dns": "file:./src/mock/dns"
运行npm install以安装假依赖项,然后使用npm start重新启动React项目.