I can add and use the native module fswin when using the typescript boilerplate.
Current Behavior
I just don't get the module fswin to work with the typescript example of ERB; the app does not load and the following error in ELECTRON_ASAR.js:160 is written into the DevTools console:
Uncaught Error: The specified module could not be found.
\\?\D:\development\workspace\test-ts-fswin-error\node_modules\fswin\electron\x64\fswin.node
at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:160:31)
at Object.Module._extensions..node (internal/modules/cjs/loader.js:722)
at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:160:31)
at Module.load (internal/modules/cjs/loader.js:602)
at tryModuleLoad (internal/modules/cjs/loader.js:541)
at Function.Module._load (internal/modules/cjs/loader.js:533)
at Module.require (internal/modules/cjs/loader.js:640)
at require (internal/modules/cjs/helpers.js:20)
at Object.<anonymous> (D:\development\workspace\test-ts-fswin-error\node_modules\fswin\index.js:3)
at Object.<anonymous> (D:\development\workspace\test-ts-fswin-error\node_modules\fswin\index.js:7)
The fswin.node file exist in the folder reported by the error. As I read in various github issues, such an error can occur even if the .node file exists if the native module did not get compiled correctly, due to DLLs not present on the working machine.
But since I can use the module with pure NodeJS, and also with the normal JS version of ERB (tested with ae89980), I am sure that the module got compiled correctly.
It seems to me like the module not getting bundled correctly when using your typescript boilerplate example.
Since I could not figure out the problem, I would be glad if you could help me!
Further notes:
I tried both the traditional require and also the ES6 import syntax, without success.
The error also occurs when using UPGRADE_EXTENSIONS=1 yarn dev, or yarn package and starting the packaged app.
for testing purposes, add the following lines to index.tsx:
...
import { configureStore, history } from './store/configureStore';
import './app.global.css';
const fswin = require('fswin'); // ADDED
console.log(fswin); // ADDED
const store = configureStore();
...
yarn dev --> Error is shown in the DevTools console, counter app is not loaded
Context
I am working with the file system on windows and want to know if files are hidden or system-files. Since both node and electron don't expose APIs for that, I have to use a native module, and fswin seems to be a good choice for that.
As you can see with the steps to reproduce, no changes in the boilerplate were made.
Prerequisites
master
branchDEBUG_PROD=true yarn build && yarn start
Expected Behavior
I can add and use the native module
fswin
when using the typescript boilerplate.Current Behavior
I just don't get the module
fswin
to work with the typescript example of ERB; the app does not load and the following error inELECTRON_ASAR.js:160
is written into the DevTools console:The
fswin.node
file exist in the folder reported by the error. As I read in various github issues, such an error can occur even if the .node file exists if the native module did not get compiled correctly, due to DLLs not present on the working machine.But since I can use the module with pure NodeJS, and also with the normal JS version of ERB (tested with ae89980), I am sure that the module got compiled correctly.
It seems to me like the module not getting bundled correctly when using your typescript boilerplate example.
Since I could not figure out the problem, I would be glad if you could help me!
Further notes:
require
and also the ES6import
syntax, without success.UPGRADE_EXTENSIONS=1 yarn dev
, oryarn package
and starting the packaged app.Steps to Reproduce (for bugs)
git clone https://github.com/electron-react-boilerplate/examples
cd examples/examples/typescript
yarn
yarn add fswin
for testing purposes, add the following lines to index.tsx:
yarn dev
--> Error is shown in the DevTools console, counter app is not loadedContext
I am working with the file system on windows and want to know if files are hidden or system-files. Since both node and electron don't expose APIs for that, I have to use a native module, and
fswin
seems to be a good choice for that. As you can see with the steps to reproduce, no changes in the boilerplate were made.Your Environment
10.15.1
1.13.0