首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解决“`Error:未能找到绑定文件”时使用“not”?

如何解决“`Error:未能找到绑定文件”时使用“not”?
EN

Stack Overflow用户
提问于 2016-10-13 22:35:11
回答 1查看 1.8K关注 0票数 3

一些细节:

  • Mac 10.11.6
  • 节点v6.5.0
  • npm v3.10.3
  • nvm v0.29.0

我最近构建了一个npm包,它使用ffi与共享C库进行交互。这个包完全独立工作(用babel构建)。我正试图将它集成到一个概念证明应用程序中,并且在bindings中遇到了很多问题。我正在使用webpack捆绑我的POC应用程序,这就是我遇到这个问题的地方。

这是我的webpack.config.js

代码语言:javascript
复制
/* eslint-disable */
var webpack = require('webpack');
var path = require('path');
var HtmlWebpackPlugin = require('html-webpack-plugin');

var buildPath = path.resolve(__dirname, 'wp-build/');

module.exports = [
  {
    name: 'frontend',
    entry: './src/frontend/index.js',
    output: {
      path: buildPath,
      filename: 'frontend.bundle.js',
    },
    module: {
      loaders: [{
        test: /\.js/,
        exclude: /(node_modules|build)/,
        loader: 'babel-loader',
      }],
    },
    plugins: [
      new HtmlWebpackPlugin(),
    ],
    devServer: {
      contentBase: buildPath,
      filename: 'frontend.bundle.js',
      publicPath: '/assets/',
      port: 8000,
      stats: {
        colors: true,
      },
    },
  },
  {
    name: 'backend',
    entry: './src/backend/server.js',
    output: {
      path: buildPath,
      filename: 'backend.bundle.js',
    },
    module: {
      loaders: [{
        test: /\.js/,
        exclude: /(node_modules|build|\.json|\.md)/,
        loader: 'babel-loader',
      }],
    },
    options: {
      symlinks: true,
    },
    target: 'node',
  },
];

frontend任务从这个Javascript (ES6)构建一个包:

console.log('This is the frontend calling!!');

很简单对吧?

backend任务从这个Javascript (ES6)构建一个包:

代码语言:javascript
复制
import Stack from 'stack-vod';

const stack = new Stack();
console.log(stack);

其中stack-vod是我使用ffi的包。

下面是POC应用程序的package.json文件:

代码语言:javascript
复制
{
  "name": "stack-as-package",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "./node_modules/.bin/webpack",
    "dev": "./node_modules/.bin/webpack-dev-server"
  },
  "author": "Zachary Abresch <zachary.abresch@gmail.com>",
  "license": "MIT",
  "devDependencies": {
    "babel-core": "^6.17.0",
    "babel-eslint": "^7.0.0",
    "babel-loader": "^6.2.5",
    "babel-preset-es2015": "^6.16.0",
    "babel-preset-stage-0": "^6.16.0",
    "eslint": "^3.7.1",
    "eslint-config-airbnb": "^12.0.0",
    "eslint-plugin-import": "^1.16.0",
    "eslint-plugin-jsx-a11y": "^2.2.3",
    "eslint-plugin-react": "^6.4.1",
    "html-webpack-plugin": "^2.22.0",
    "webpack": "^1.13.2",
    "webpack-dev-server": "^1.16.2"
  },
  "dependencies": {
    "stack-vod": "[Private Gitlab Repository]"
  }
}

以下是复制该问题的步骤:

  1. npm i
  2. npm run build
  3. node ./wp-build/backend.bundle.js

步骤1工作正常。保存一些警告,安装npm包时没有错误。

步骤2显示了这个输出:

代码语言:javascript
复制
> stack-as-package@1.0.0 build /Users/zabresch/Documents/8x8/scratching/stack-as-package
> webpack

Hash: 513274db1b2b97352c7b3aed8d398daba0b6527f
Version: webpack 1.13.2
Child frontend:
    Hash: 513274db1b2b97352c7b
    Version: webpack 1.13.2
    Time: 859ms
                 Asset       Size  Chunks             Chunk Names
    frontend.bundle.js    1.45 kB       0  [emitted]  main
            index.html  191 bytes          [emitted]
        + 1 hidden modules
    Child html-webpack-plugin for "index.html":
            + 3 hidden modules
Child backend:
    Hash: 3aed8d398daba0b6527f
    Version: webpack 1.13.2
    Time: 949ms
                Asset    Size  Chunks             Chunk Names
    backend.bundle.js  137 kB       0  [emitted]  main
        + 40 hidden modules

    WARNING in ./~/bindings/bindings.js
    Critical dependencies:
    76:22-40 the request of a dependency is an expression
    76:43-53 the request of a dependency is an expression
     @ ./~/bindings/bindings.js 76:22-40 76:43-53

    WARNING in ./~/bindings/package.json
    Module parse failed: /Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/bindings/package.json Unexpected token (2:9)
    You may need an appropriate loader to handle this file type.
    SyntaxError: Unexpected token (2:9)
        at Parser.pp$4.raise (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/node_modules/acorn/dist/acorn.js:2221:15)
        at Parser.pp.unexpected (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/node_modules/acorn/dist/acorn.js:603:10)
        at Parser.pp.semicolon (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/node_modules/acorn/dist/acorn.js:581:61)
        at Parser.pp$1.parseExpressionStatement (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/node_modules/acorn/dist/acorn.js:966:10)
        at Parser.pp$1.parseStatement (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/node_modules/acorn/dist/acorn.js:730:24)
        at Parser.pp$1.parseBlock (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/node_modules/acorn/dist/acorn.js:981:25)
        at Parser.pp$1.parseStatement (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/node_modules/acorn/dist/acorn.js:709:33)
        at Parser.pp$1.parseTopLevel (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/node_modules/acorn/dist/acorn.js:638:25)
        at Parser.parse (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/node_modules/acorn/dist/acorn.js:516:17)
        at Object.parse (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/node_modules/acorn/dist/acorn.js:3098:39)
        at Parser.parse (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/lib/Parser.js:902:15)
        at DependenciesBlock.<anonymous> (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/lib/NormalModule.js:104:16)
        at DependenciesBlock.onModuleBuild (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack-core/lib/NormalModuleMixin.js:310:10)
        at nextLoader (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack-core/lib/NormalModuleMixin.js:275:25)
        at /Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack-core/lib/NormalModuleMixin.js:259:5
        at Storage.provide (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:52:20)
        at CachedInputFileSystem.readFile (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:140:24)
        at DependenciesBlock.onLoadPitchDone (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack-core/lib/NormalModuleMixin.js:255:7)
        at DependenciesBlock.loadPitch (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack-core/lib/NormalModuleMixin.js:182:27)
        at DependenciesBlock.doBuild (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack-core/lib/NormalModuleMixin.js:241:4)
        at DependenciesBlock.build (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/lib/NormalModule.js:84:14)
        at Compilation.buildModule (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/lib/Compilation.js:126:9)
        at /Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/lib/Compilation.js:309:10
        at /Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/lib/NormalModuleFactory.js:58:13
        at NormalModuleFactory.applyPluginsAsyncWaterfall (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/tapable/lib/Tapable.js:75:69)
        at onDoneResolving (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/lib/NormalModuleFactory.js:38:11)
        at onDoneResolving (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/lib/NormalModuleFactory.js:121:6)
        at /Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/lib/NormalModuleFactory.js:116:7
        at /Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/node_modules/async/lib/async.js:726:13
        at /Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/node_modules/async/lib/async.js:52:16
     @ ./~/bindings ^\.\/.*$

    WARNING in ./~/bindings/README.md
    Module parse failed: /Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/bindings/README.md Unexpected token (2:3)
    You may need an appropriate loader to handle this file type.
    SyntaxError: Unexpected token (2:3)
        at Parser.pp$4.raise (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/node_modules/acorn/dist/acorn.js:2221:15)
        at Parser.pp.unexpected (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/node_modules/acorn/dist/acorn.js:603:10)
        at Parser.pp$3.parseExprAtom (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/node_modules/acorn/dist/acorn.js:1822:12)
        at Parser.pp$3.parseExprSubscripts (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/node_modules/acorn/dist/acorn.js:1715:21)
        at Parser.pp$3.parseMaybeUnary (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/node_modules/acorn/dist/acorn.js:1692:19)
        at Parser.pp$3.parseExprOp (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/node_modules/acorn/dist/acorn.js:1656:43)
        at Parser.pp$3.parseExprOp (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/node_modules/acorn/dist/acorn.js:1658:21)
        at Parser.pp$3.parseExprOps (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/node_modules/acorn/dist/acorn.js:1639:17)
        at Parser.pp$3.parseMaybeConditional (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/node_modules/acorn/dist/acorn.js:1620:21)
        at Parser.pp$3.parseMaybeAssign (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/node_modules/acorn/dist/acorn.js:1597:21)
        at Parser.pp$3.parseExpression (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/node_modules/acorn/dist/acorn.js:1573:21)
        at Parser.pp$1.parseStatement (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/node_modules/acorn/dist/acorn.js:727:47)
        at Parser.pp$1.parseTopLevel (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/node_modules/acorn/dist/acorn.js:638:25)
        at Parser.parse (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/node_modules/acorn/dist/acorn.js:516:17)
        at Object.parse (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/node_modules/acorn/dist/acorn.js:3098:39)
        at Parser.parse (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/lib/Parser.js:902:15)
        at DependenciesBlock.<anonymous> (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack/lib/NormalModule.js:104:16)
        at DependenciesBlock.onModuleBuild (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack-core/lib/NormalModuleMixin.js:310:10)
        at nextLoader (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack-core/lib/NormalModuleMixin.js:275:25)
        at /Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/webpack-core/lib/NormalModuleMixin.js:259:5
        at Storage.finished (/Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:38:16)
        at /Users/zabresch/Documents/8x8/scratching/stack-as-package/node_modules/graceful-fs/graceful-fs.js:78:16
        at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:445:3)
     @ ./~/bindings ^\.\/.*$

步骤3响应此错误:

代码语言:javascript
复制
/Users/zabresch/Documents/8x8/scratching/stack-as-package/wp-build/backend.bundle.js:2688
    throw err
    ^

Error: Could not locate the bindings file. Tried:
 → /Users/zabresch/Documents/8x8/scratching/stack-as-package/build/binding.node
 → /Users/zabresch/Documents/8x8/scratching/stack-as-package/build/Debug/binding.node
 → /Users/zabresch/Documents/8x8/scratching/stack-as-package/build/Release/binding.node
 → /Users/zabresch/Documents/8x8/scratching/stack-as-package/out/Debug/binding.node
 → /Users/zabresch/Documents/8x8/scratching/stack-as-package/Debug/binding.node
 → /Users/zabresch/Documents/8x8/scratching/stack-as-package/out/Release/binding.node
 → /Users/zabresch/Documents/8x8/scratching/stack-as-package/Release/binding.node
 → /Users/zabresch/Documents/8x8/scratching/stack-as-package/build/default/binding.node
 → /Users/zabresch/Documents/8x8/scratching/stack-as-package/compiled/6.5.0/darwin/x64/binding.node
    at bindings (/Users/zabresch/Documents/8x8/scratching/stack-as-package/wp-build/backend.bundle.js:2685:10)
    at Object.<anonymous> (/Users/zabresch/Documents/8x8/scratching/stack-as-package/wp-build/backend.bundle.js:561:52)
    at __webpack_require__ (/Users/zabresch/Documents/8x8/scratching/stack-as-package/wp-build/backend.bundle.js:20:30)
    at Object.<anonymous> (/Users/zabresch/Documents/8x8/scratching/stack-as-package/wp-build/backend.bundle.js:466:12)
    at __webpack_require__ (/Users/zabresch/Documents/8x8/scratching/stack-as-package/wp-build/backend.bundle.js:20:30)
    at Object.<anonymous> (/Users/zabresch/Documents/8x8/scratching/stack-as-package/wp-build/backend.bundle.js:80:13)
    at Object.<anonymous> (/Users/zabresch/Documents/8x8/scratching/stack-as-package/wp-build/backend.bundle.js:455:31)
    at __webpack_require__ (/Users/zabresch/Documents/8x8/scratching/stack-as-package/wp-build/backend.bundle.js:20:30)
    at Object.defineProperty.value (/Users/zabresch/Documents/8x8/scratching/stack-as-package/wp-build/backend.bundle.js:64:14)
    at __webpack_require__ (/Users/zabresch/Documents/8x8/scratching/stack-as-package/wp-build/backend.bundle.js:20:30)

我已经尝试了大量的“修复”,我发现在SO和GH上,但它们都没有发挥作用。有人能告诉我这是怎么回事吗?能做些什么来解决这个问题?几天来,我一直对此大发雷霆,上周有两名队友也花了好几天的时间想办法解决这个问题。

顺便说一句,webpack是我的团队的一个需求,因为它最终将用于一个使用electronwebpack构建的大型项目。因此,像“不使用webpack”这样的回答不会削减芥末。:)

EN

回答 1

Stack Overflow用户

发布于 2016-10-14 10:09:22

首先,您可能需要一个json和md文件加载程序,执行npm i -S json-loadernpm i -S file-loader,然后在npm i -S json-loader中更新它。

代码语言:javascript
复制
"loaders": [{
    test: /\.js/,
    exclude: /(node_modules|build)/,
    loader: 'babel-loader',
 }, {
    test: /\.md(\?v=\d+\.\d+\.\d+)?$/,
    loader: "file"
 }, {
    test: /\.json$/,
    loader: 'json-loader'
 }]

如果这不能解决问题,请检查binding.node在完成此操作后是否存在,然后回复,然后我将更新我的答案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40032133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档