Webpack, пистолет, не может разрешить файлы и т. Д., Пистолет требует, чтобы не разрешить модуль 'fs'

Я работаю над электронным приложением с gundb. После того, как все остальное заработало, я сделал npm install --save gun, Это завершено с этим предупреждением:

npm WARN optional Skipping failed optional dependency /chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.0.14

Когда я пытаюсь:

require('gun');
var endpoints;
var gun = Gun(endpoints);

Я получаю очень длинный список ошибок, которые не могу сделать с тех пор. Они начинаются с:

.../node_modules/fs doesn't exist
.../node_modules/fs.webpack.js doesn't exist
.../node_modules/fs.web.js doesn't exist
.../node_modules/fs.js doesn't exist
.../node_modules/fs.json doesn't exist

И следующее не может решить:

@ ./~/gun/lib/file.js 14:10-23
@ ./~/gun/lib/wsp.js 61:39-52
@ ./~/ws/lib/WebSocketServer.js 15:10-2
@ ./~/options/lib/options.js 6:9-2
@ ./~/aws-sdk/lib/api_loader.js 1:9-22
@ ./~/aws-sdk/lib/services.js 1:9-22

Я на Linux. Является ли fsevent зависимостью от npm оружия?

ОБНОВИТЬ
Чтобы удалить как можно больше других переменных, я сократил свой файл package.json до уровня "только электрон".... устраняя возможные проблемы с веб-пакетом и другими зависимостями. Я также удалил мои node_modules и сделал свежий npm install & npm install gun,

Это выявило более полезную ошибку:

Uncaught ReferenceError: Gun is not defined                gun.js:1470

Который указал на:

if(typeof window !== "undefined"){ Gun.request = request }
if(typeof module !== "undefined" && module.exports){ module.exports.request = request }

2 ответа

Решение

Это была ошибка с оружием, и команда орудий исправила это сегодня утром. После того, как ошибка была исправлена, и я обновил оружие в своем проекте, у меня все еще остались проблемы с комплектацией через веб-пакет:

WARNING in ./~/ws/lib/BufferUtil.js
Module not found: Error: Cannot resolve module 'bufferutil' in /node_modules/ws/lib
 @ ./~/ws/lib/BufferUtil.js 10:19-40

WARNING in ./~/ws/lib/Validation.js
Module not found: Error: Cannot resolve module 'utf-8-validate' in /node_modules/ws/lib
 @ ./~/ws/lib/Validation.js 10:19-44

WARNING in ./~/formidable/lib/incoming_form.js
Critical dependencies:
1:43-50 require function is used in a way in which dependencies cannot be statically extracted
 @ ./~/formidable/lib/incoming_form.js 1:43-50

WARNING in ./~/formidable/lib/file.js
Critical dependencies:
1:43-50 require function is used in a way in which dependencies cannot be statically extracted
 @ ./~/formidable/lib/file.js 1:43-50

WARNING in ./~/formidable/lib/json_parser.js
Critical dependencies:
1:43-50 require function is used in a way in which dependencies cannot be statically extracted
 @ ./~/formidable/lib/json_parser.js 1:43-50

WARNING in ./~/formidable/lib/querystring_parser.js
Critical dependencies:
1:43-50 require function is used in a way in which dependencies cannot be statically extracted
 @ ./~/formidable/lib/querystring_parser.js 1:43-50

WARNING in ./~/aws-sdk/lib/util.js
Critical dependencies:
40:30-45 the request of a dependency is an expression
43:11-53 the request of a dependency is an expression
 @ ./~/aws-sdk/lib/util.js 40:30-45 43:11-53

WARNING in ./~/aws-sdk/lib/api_loader.js
Critical dependencies:
13:15-59 the request of a dependency is an expression
104:12-46 the request of a dependency is an expression
108:21-58 the request of a dependency is an expression
114:18-52 the request of a dependency is an expression
 @ ./~/aws-sdk/lib/api_loader.js 13:15-59 104:12-46 108:21-58 114:18-52

Мне пришлось добавить следующее в мой webpack.config.js, чтобы использовать пистолет с webpack:

var webpack = require('webpack');
module.exports = {
  devtool: "source-map",
  target: "node", 

....

  module: {
    noParse: [/aws-sdk/],

....

 plugins: [
   new webpack.DefinePlugin({ "global.GENTLY": false })
 ]
....

На тот момент все работало, хотя у меня все еще были следующие ошибки в bash:

WARNING in ./~/ws/lib/BufferUtil.js
Module not found: Error: Cannot resolve module 'bufferutil' in /node_modules/ws/lib
 @ ./~/ws/lib/BufferUtil.js 10:19-40

WARNING in ./~/ws/lib/Validation.js
Module not found: Error: Cannot resolve module 'utf-8-validate' in /node_modules/ws/lib
 @ ./~/ws/lib/Validation.js 10:19-44

На данный момент в браузере вы должны:

var Gun = require('gun/gun');

Чтобы исправить вашу проблему. Или используйте тег script, который экспортирует Gun по всему миру.

В будущем мы постараемся и потребуем ("оружейная") среда автоопределения, а не включать в себя только код NodeJS (например, fs, веб-сокеты, http и т. д.)

Другие вопросы по тегам