naviapps / create-nw-react-app

Create NW.js React apps with no build configuration.
MIT License
144 stars 14 forks source link

bindings error when using drivelist npm package #9

Closed stumps-dev closed 6 years ago

stumps-dev commented 6 years ago

Worked fine in a regular nwjs project, any idea whats happening? Looks like the path gets messed up maybe?

FAIL  src\components\App.test.js
  ● renders without crashing

    Error
      Error: The specified module could not be found.
      \\?\E:\NWJS\the1backup\node_modules\drivelist\build\Release\drivelist.node
      at Object.Module._extensions..node (module.js:672:18)
      at Module.load (module.js:556:32)
      at tryModuleLoad (module.js:499:12)
      at Function.Module._load (module.js:491:3)
      at Module.require (module.js:587:17)
      at require (internal/module.js:11:18)
      at bindings (node_modules/bindings/bindings.js:81:44)
      at Object.<anonymous>.exports.list (node_modules/drivelist/lib/drivelist.js:53:5)

  × renders without crashing (9ms)

Test Suites: 1 failed, 1 total
Tests:       1 failed, 1 total
Snapshots:   0 total
Time:        0.423s, estimated 1s
Ran all test suites.
stumps-dev commented 6 years ago

Above error remains. compile warnings:

Compiled with warnings.

./node_modules/bindings/bindings.js
81:22-40 Critical dependency: the request of a dependency is an expression

./node_modules/bindings/bindings.js
81:43-53 Critical dependency: the request of a dependency is an expression

Search for the keywords to learn more about each warning.
To ignore, add // eslint-disable-next-line to the line before.
naviapis commented 6 years ago

Please tell me about package.json dependencies and devDependencies.

stumps-dev commented 6 years ago
"node-sass-chokidar": "0.0.3",
"npm-run-all": "^4.1.2",
"auto-launch": "^5.0.5",
"drivelist": "^6.0.4",
"node-notifier": "^5.2.1",

Apart from the ejected packages. Getting this error in console right now:

 FAIL  src\components\App.test.js
  ● renders without crashing
    Error
      Error: The specified module could not be found.
      \\?\E:\NWJS\the1backup\node_modules\drivelist\build\Release\drivelist.node
      at Object.Module._extensions..node (module.js:672:18)
      at Module.load (module.js:556:32)
      at tryModuleLoad (module.js:499:12)
      at Function.Module._load (module.js:491:3)
      at Module.require (module.js:587:17)
      at require (internal/module.js:11:18)
      at bindings (node_modules/bindings/bindings.js:82:44)
      at Object.<anonymous>.exports.list (node_modules/drivelist/lib/drivelist.js:53:5)

However, drivelist.node is in that location.

naviapis commented 6 years ago

Fixed released.

Before eject:

package.json

{
  "dependencies": {
-   "nw-react-scripts": "^1.0.7",
+   "nw-react-scripts": "^1.0.8",
  }
}

yarn update or npm update

Or after eject:

Please make changes according to the difference. https://github.com/naviapps/create-nw-react-app/commit/fb996e69f00732ec79567979357cbe319613dbd0 packages/nw-react-scripts/config/webpack.config.dev.js -> APP_ROOT/config/webpack.config.dev.js packages/nw-react-scripts/config/webpack.config.prod.js -> APP_ROOT/config/webpack.config.prod.js packages/nw-react-scripts/scripts/build.js -> APP_ROOT/scripts/build.js

packages/nw-react-scripts/package.json -> APP_ROOT/package.json yarn update or npm update

Reduce app size

{
  "dependencies": {
-   "autoprefixer": "7.1.6",
-   "babel-core": "6.26.0",
-   "babel-eslint": "7.2.3",
-   "babel-jest": "20.0.3",
-   "babel-loader": "7.1.2",
-   "babel-preset-react-app": "^3.1.1",
    "babel-runtime": "6.26.0",
-   "case-sensitive-paths-webpack-plugin": "2.1.1",
-   "chalk": "1.1.3",
-   "css-loader": "0.28.7",
-   "dotenv": "4.0.0",
-   "dotenv-expand": "4.2.0",
-   "eslint": "4.10.0",
-   "eslint-config-nw-react-app": "^1.0.2",
-   "eslint-loader": "1.9.0",
-   "eslint-plugin-flowtype": "2.39.1",
-   "eslint-plugin-import": "2.8.0",
-   "eslint-plugin-jsx-a11y": "5.1.1",
-   "eslint-plugin-react": "7.4.0",
-   "extract-text-webpack-plugin": "3.0.2",
-   "file-loader": "1.1.5",
-   "fs-extra": "3.0.1",
-   "html-webpack-plugin": "2.29.0",
-   "jest": "20.0.4",
-   "nw-builder": "^3.5.1",
-   "object-assign": "4.1.1",
-   "postcss-flexbugs-fixes": "3.2.0",
-   "postcss-loader": "2.0.8",
-   "promise": "8.0.1",
-   "raf": "3.4.0",
    "react": "^16.0.0",
-   "react-dev-utils": "^5.0.0",
    "react-dom": "^16.0.0"
-   "style-loader": "0.19.0",
-   "sw-precache-webpack-plugin": "0.11.4",
-   "url-loader": "0.6.2",
-   "webpack": "3.8.1",
-   "webpack-dev-server": "2.9.4",
-   "webpack-manifest-plugin": "1.3.2",
-   "webpack-node-externals": "^1.6.0",
-   "whatwg-fetch": "2.0.3"
  },
+ "devDependencies": {
+   "autoprefixer": "7.1.6",
+   "babel-core": "6.26.0",
+   "babel-eslint": "7.2.3",
+   "babel-jest": "20.0.3",
+   "babel-loader": "7.1.2",
+   "babel-preset-react-app": "^3.1.1",
+   "case-sensitive-paths-webpack-plugin": "2.1.1",
+   "chalk": "1.1.3",
+   "css-loader": "0.28.7",
+   "dotenv": "4.0.0",
+   "dotenv-expand": "4.2.0",
+   "eslint": "4.10.0",
+   "eslint-config-nw-react-app": "^1.0.2",
+   "eslint-loader": "1.9.0",
+   "eslint-plugin-flowtype": "2.39.1",
+   "eslint-plugin-import": "2.8.0",
+   "eslint-plugin-jsx-a11y": "5.1.1",
+   "eslint-plugin-react": "7.4.0",
+   "extract-text-webpack-plugin": "3.0.2",
+   "file-loader": "1.1.5",
+   "fs-extra": "3.0.1",
+   "html-webpack-plugin": "2.29.0",
+   "jest": "20.0.4",
+   "nw-builder": "^3.5.1",
+   "object-assign": "4.1.1",
+   "postcss-flexbugs-fixes": "3.2.0",
+   "postcss-loader": "2.0.8",
+   "promise": "8.0.1",
+   "raf": "3.4.0",
+   "react-dev-utils": "^5.0.0",
+   "style-loader": "0.19.0",
+   "sw-precache-webpack-plugin": "0.11.4",
+   "url-loader": "0.6.2",
+   "webpack": "3.8.1",
+   "webpack-dev-server": "2.9.4",
+   "webpack-manifest-plugin": "1.3.2",
+   "webpack-node-externals": "^1.6.0",
+   "whatwg-fetch": "2.0.3"
+ },
}

Add drivelist to dependencies.

Thanks.

stumps-dev commented 6 years ago

It works! Thanks alot ;-)

stumps-dev commented 6 years ago

Just discovered the app build opens a window with a 404 error. npm test gave the same error from before:

Error
      Error: The specified module could not be found.
      \\?\E:\NWJS\the1backup\node_modules\drivelist\build\Release\drivelist.node
      at Object.Module._extensions..node (module.js:672:18)
      at Module.load (module.js:556:32)
      at tryModuleLoad (module.js:499:12)
      at Function.Module._load (module.js:491:3)
      at Module.require (module.js:587:17)
      at require (internal/module.js:11:18)
      at bindings (node_modules/bindings/bindings.js:81:44)
      at Object.<anonymous>.exports.list (node_modules/drivelist/lib/drivelist.js:53:5)

However in development it works as expected.

naviapis commented 6 years ago

I could not confirm the error.

npx create-nw-react-app my-app
cd my-app
npm run eject
yarn add drivelist
yarn test
yarn build

Open my-app Please give me a little more detail.

stumps-dev commented 6 years ago

Have you tried it with this running?:

const drivelist = require('drivelist');

drivelist.list((error, drives) => {
  if (error) {
    throw error;
  }

  console.log(drives);
})
naviapis commented 6 years ago

Override your scripts/build.js below and try again. https://raw.githubusercontent.com/naviapps/create-nw-react-app/nw-react-scripts%401.0.8/packages/nw-react-scripts/scripts/build.js