Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TypeError: Arguments to path.resolve must be strings #108

Closed
kayvanbree opened this issue Jan 26, 2018 · 2 comments
Closed

TypeError: Arguments to path.resolve must be strings #108

kayvanbree opened this issue Jan 26, 2018 · 2 comments

Comments

@kayvanbree
Copy link

kayvanbree commented Jan 26, 2018

When trying to use the library in TypeScript I get the following error messages:

AppComponent_Host.html:1 ERROR TypeError: Arguments to path.resolve must be strings
    at Object.exports.resolve (index.js:71)
    at findCompiledModule (nbind.js:70)
    at find (nbind.js:93)
    at Object.init (nbind.js:104)
    at new AppComponent (app.component.ts:15)
    at createClass (core.es5.js:10910)
    at createDirectiveInstance (core.es5.js:10751)
    at createViewNodes (core.es5.js:12192)
    at createRootView (core.es5.js:12082)

Unhandled Promise rejection: Arguments to path.resolve must be strings ; Zone: <root> ; Task: Promise.then ; Value: TypeError: Arguments to path.resolve must be strings
    at Object.exports.resolve (index.js:71)
    at findCompiledModule (nbind.js:70)
    at find (nbind.js:93)
    at Object.init (nbind.js:104)
    at new AppComponent (app.component.ts:15)
    at createClass (core.es5.js:10910)
    at createDirectiveInstance (core.es5.js:10751)
    at createViewNodes (core.es5.js:12192)
    at createRootView (core.es5.js:12082)
    at callWithDebugContext (core.es5.js:13467) TypeError: Arguments to path.resolve must be strings
    at Object.exports.resolve (file:///E:/Projects/streaming/using_nan/streampp/dist/vendor.bundle.js:62294:13)
    at findCompiledModule (file:///E:/Projects/streaming/using_nan/streampp/dist/vendor.bundle.js:62132:45)
    at find (file:///E:/Projects/streaming/using_nan/streampp/dist/vendor.bundle.js:62155:13)
    at Object.init (file:///E:/Projects/streaming/using_nan/streampp/dist/vendor.bundle.js:62166:5)
    at new AppComponent (file:///E:/Projects/streaming/using_nan/streampp/dist/main.bundle.js:107:62)
    at createClass (file:///E:/Projects/streaming/using_nan/streampp/dist/vendor.bundle.js:11434:20)
    at createDirectiveInstance (file:///E:/Projects/streaming/using_nan/streampp/dist/vendor.bundle.js:11275:37)
    at createViewNodes (file:///E:/Projects/streaming/using_nan/streampp/dist/vendor.bundle.js:12716:53)
    at createRootView (file:///E:/Projects/streaming/using_nan/streampp/dist/vendor.bundle.js:12606:5)
    at callWithDebugContext (file:///E:/Projects/streaming/using_nan/streampp/dist/vendor.bundle.js:13991:42)

I am trying to get nbind to work with the Electron Angular Boilerplate at https://github.com/stokingerl/Angular2-Electron-Boilerplate. I forked the repo at https://github.com/kayvanbree/Angular2-Electron-Nbind-Boilerplate.

I updated the package.json to look like this:

{
  "name": "electron-angular-nbind-boilerplate",
  "productName": "Electron Angular Nbind Boilerplate",
  "description": "Electron Angular Boilerplate combined with nbind based on https://github.com/stokingerl/Angular2-Electron-Boilerplate",
  "version": "0.0.0",
  "license": "MIT",
  "author": "Kay van Bree",
  "main": "dist/main.js",
  "scripts": {
    "typings": "npm run -s -- ndts . > src/lib-types.d.ts",
    "build-node-gyp": "autogypi && npm run -- node-gyp configure build",
    "copy-electron": "copy src\\electron\\* dist",
    "build-electron": "npm run build-node-gyp && npm run typings && ng build --base-href . && npm run copy-electron",
    "start": "npm run build-electron && electron dist/main.js",
    "package-mac": "npm run build-electron && electron-packager . --overwrite --asar=true --platform=darwin --arch=x64 --prune=true --out=release-builds",
    "package-windows": "npm run build-electron && electron-packager . --overwrite --asar=true --platform=win32 --arch=ia32 --prune=true --out=release-builds",
    "package-linux": "npm run build-electron && electron-packager . --overwrite --asar=true --platform=linux --arch=x64 --prune=true --out=release-builds",
    "create-installer-mac": "electron-installer-dmg ./release-builds/Electron\\ Angular\\ Boilerplate-darwin-x64/Electron\\ Angular\\ Boilerplate.app electron-boilerplate-app --out=release-builds --overwrite",
    "create-installer-windows": "node installers/windows/createinstaller.js",
    "full-build-mac": "npm run build-electron && npm run package-mac && npm run create-installer-mac",
    "full-build-windows": "npm run build-electron && npm run package-windows && npm run create-installer-windows",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e",
    "autogypi": "autogypi",
    "node-gyp": "node-gyp",
    "emcc-path": "emcc-path",
    "copyasm": "copyasm",
    "ndts": "ndts"
  },
  "private": true,
  "dependencies": {
    "@angular/common": "^4.0.0",
    "@angular/compiler": "^4.0.0",
    "@angular/core": "^4.0.0",
    "@angular/forms": "^4.0.0",
    "@angular/http": "^4.0.0",
    "@angular/platform-browser": "^4.0.0",
    "@angular/platform-browser-dynamic": "^4.0.0",
    "@angular/router": "^4.0.0",
    "autogypi": "^0.2.2",
    "bindings": "^1.3.0",
    "core-js": "^2.4.1",
    "nan": "^2.8.0",
    "nbind": "^0.3.14",
    "node-gyp": "^3.6.2",
    "rxjs": "^5.1.0",
    "zone.js": "^0.8.4"
  },
  "devDependencies": {
    "@angular/cli": "1.0.0",
    "@angular/compiler-cli": "^4.0.0",
    "@types/jasmine": "2.5.38",
    "@types/node": "~6.0.60",
    "codelyzer": "~2.0.0",
    "electron": "^1.6.2",
    "electron-installer-dmg": "^0.2.1",
    "electron-packager": "^8.6.0",
    "electron-winstaller": "^2.5.2",
    "jasmine-core": "~2.5.2",
    "jasmine-spec-reporter": "~3.2.0",
    "karma": "~1.4.1",
    "karma-chrome-launcher": "~2.0.0",
    "karma-cli": "~1.0.1",
    "karma-coverage-istanbul-reporter": "^0.2.0",
    "karma-jasmine": "~1.1.0",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~5.1.0",
    "ts-node": "~2.0.0",
    "tslint": "~4.5.0",
    "typescript": "~2.2.0"
  }
}

Everything compiles. Typings are being generated to src/lib-types.d.ts. Importing nbind seems to work. LibTypes seems undefined in the devtools debugger though.

The code I'm using to import and use the module is:

import { Component } from '@angular/core';

import * as nbind from 'nbind';
import * as LibTypes from './../lib-types';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'app works!';

  constructor() {
    const lib = nbind.init<typeof LibTypes>().lib;
    lib.Greeter.sayHello('Hello');
  }
}

I also tried the async method, but it gave the same error. How can I fix this?

@Haybat
Copy link

Haybat commented May 17, 2018

Hi kayvanbree,
have you already solved this issue?

@kayvanbree
Copy link
Author

@Haybat No, unfortunately I abandoned the project. Good luck!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants