如何使用nbin

时间:2019-07-18 13:37:26

标签: node.js

我正在为项目使用nbin。我正在关注this example。但是,我无法包含本机模块。

这是我的代码:

import { mkdirpSync, writeFileSync } from "fs-extra";
import * as path from "path";
import { Binary } from "@coder/nbin";

const dirName = path.dirname(__dirname);
const bin = new Binary({
mainFile: path.join(dirName, "bin", "entry.js"),
  suppressOutput: false,
  target: 'linux'
});
bin.writeFiles(path.join(dirName, "lib", "**"));
bin.writeFiles(path.join(dirName, "bin", "**"));
bin.writeFiles(path.join(dirName, "..", "node_modules", "**"));
bin.writeModule(path.join(dirName, "..", "node_modules", "libvirt"));
bin.build().then((buffer) => {
  const outDir = path.join(dirName, "out");
  mkdirpSync(outDir);
  writeFileSync(path.join(outDir, "test-exe"), buffer, {
    mode: "755",
  });
});

我在tsc生成的输出上运行以上代码。

  1. 如果我不使用bin.writeFiles(path.join(dirName, "..", "node_modules", "**"));,则会收到错误消息:
  internal/modules/cjs/loader.js:595
   throw err;
   ^
   Error: Cannot find module 'tslib'
   at Function.Module._resolveFilename (internal/modules/cjs/loader.js:593:15)
   at Function.Module._load (internal/modules/cjs/loader.js:519:25)
   at Module.require (internal/modules/cjs/loader.js:649:17)
   at require (internal/modules/cjs/helpers.js:22:18)
   at Object.<anonymous> (/home/pratik/hive/code/test/dist/bin/entry.js:3:17)
   at Module._compile (internal/modules/cjs/loader.js:701:30)
   at Object.Module._extensions..js (internal/modules/cjs/loader.js:717:10)
   at Module.load (internal/modules/cjs/loader.js:611:32)
   at tryModuleLoad (internal/modules/cjs/loader.js:550:12)
   at Function.Module._load (internal/modules/cjs/loader.js:542:3)
  1. 无论使用bin.writeModule(path.join(dirName, "..", "node_modules", "libvirt"));, 我收到错误消息:
/home/pratik/hive/code/test/node_modules/bindings/bindings.js:211
      throw new Error(
      ^

Error: Could not find module root given file: "/home/pratik/hive/code/test/node_modules/libvirt/lib/index.js". Do you have a `package.json` file? 
    at Function.getRoot (/home/pratik/hive/code/test/node_modules/bindings/bindings.js:211:13)
    at bindings (/home/pratik/hive/code/test/node_modules/bindings/bindings.js:82:32)
    at Object.<anonymous> (/home/pratik/hive/code/test/node_modules/libvirt/lib/index.js:3:34)
    at Module._compile (internal/modules/cjs/loader.js:701:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:717:10)
    at Module.load (internal/modules/cjs/loader.js:611:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:550:12)
    at Function.Module._load (internal/modules/cjs/loader.js:542:3)
    at Module.require (internal/modules/cjs/loader.js:649:17)
    at require (internal/modules/cjs/helpers.js:22:18)
    at Object.<anonymous> (/home/pratik/hive/code/test/dist/lib/utilities/virt-utils.js:6:35)
    at Module._compile (internal/modules/cjs/loader.js:701:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:717:10)
    at Module.load (internal/modules/cjs/loader.js:611:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:550:12)
    at Function.Module._load (internal/modules/cjs/loader.js:542:3)

0 个答案:

没有答案