浏览包含其中没有.js类的节点模块的文件

时间:2016-06-16 02:56:51

标签: javascript node.js npm browserify npm-install

我正在尝试浏览我的模块。我依赖于这个https://www.npmjs.com/package/chilkat_win32它存在于我的node_modules文件夹中,这就是它的结构。

enter image description here

如您所见,没有js类。但是有一个.node文件。当我在我的模块上运行browserify时,我收到以下错误。

SyntaxError: Unexpected character '�' (2:2) while parsing G:\Projects\Kube 2.0\edge-node-sdk-typescript\edge-node-sdk-js\node_modules\chilkat_win32\chilkat.node while parsing file: G:\Projects\Kube 2.0\edge-node-sdk-typescript\edge-node-sdk-js\node_modules\chilkat_win32\chilkat.node
    at DestroyableTransform.end [as _flush] (C:\Users\macilamanym\AppData\Roaming\npm\node_modules\browserify\node_modules\insert-module-globals\index.js:96:21)
    at DestroyableTransform.<anonymous> (C:\Users\macilamanym\AppData\Roaming\npm\node_modules\browserify\node_modules\through2\node_modules\readable-stream\lib\_stream_transform.js:115:49)
    at DestroyableTransform.g (events.js:260:16)
    at emitNone (events.js:67:13)
    at DestroyableTransform.emit (events.js:166:7)
    at prefinish (C:\Users\macilamanym\AppData\Roaming\npm\node_modules\browserify\node_modules\through2\node_modules\readable-stream\lib\_stream_writable.js:465:12)
    at finishMaybe (C:\Users\macilamanym\AppData\Roaming\npm\node_modules\browserify\node_modules\through2\node_modules\readable-stream\lib\_stream_writable.js:473:7)
    at endWritable (C:\Users\macilamanym\AppData\Roaming\npm\node_modules\browserify\node_modules\through2\node_modules\readable-stream\lib\_stream_writable.js:485:3)
    at DestroyableTransform.Writable.end (C:\Users\macilamanym\AppData\Roaming\npm\node_modules\browserify\node_modules\through2\node_modules\readable-stream\lib\_stream_writable.js:455:41)
    at DestroyableTransform.onend (C:\Users\macilamanym\AppData\Roaming\npm\node_modules\browserify\node_modules\through2\node_modules\readable-stream\lib\_stream_readable.js:495:10)

这是因为.node文件无法读取或浏览化吗?如果是这样,我该如何处理这个模块并浏览我的模块?请指教。

以下是gulp browserify任务。

gulp.task('browserify', function() {
    // Single entry point to browserify
    gulp.src('lib/main/EdgeNodeBrowserify.js')
        .pipe(browserify({
          standalone: 'EdgeNode'
        }))
    .pipe(rename('browserEdgeNode.js'))
        .pipe(gulp.dest('./build/js'))
});

1 个答案:

答案 0 :(得分:2)

它实际上是一个插件,通常用于提供在nodejs 中运行的JavaScript 与底层C / C ++库之间的接口。该文件是构建步骤生成的二进制文件。在node.js中,这些插件可以包含在require中,尽管它们不能被浏览化,因为它没有任何意义。

我不确定为什么在浏览器端需要这样的C / C ++绑定。一种方法是在捆绑

时忽略这样的模块
    // assuming you use gulp-browserify
    // please be advised not to use that since it's no longer being maintained
    .pipe(browserify({
      ignore : ['chilkat_win32']
    }))