我有一个非常简单的C ++节点插件。它使用NODE_SET_METHOD
节点函数导出2种方法。他们两个都只返回一个字符串和/或在控制台上打印一些内容。
void Method1(const FunctionCallbackInfo<Value>& args) {
Isolate* isolate = args.GetIsolate();
args.GetReturnValue().Set(String::NewFromUtf8(
isolate, "world"));
}
void Method2(const FunctionCallbackInfo<Value>& args) {
Isolate* isolate = args.GetIsolate();
printf("Testing testing.\n");
args.GetReturnValue().Set(String::NewFromUtf8(isolate, "hello there"));
}
void Initialize(Local<Object> exports) {
NODE_SET_METHOD(exports, "hello", Method1);
NODE_SET_METHOD(exports, "welcome", Method2);
}
构建工作正常。通过Node从JavaScript调用这些函数也会返回并打印出期望值。我正在努力的是将整个东西捆绑在一起(使用browserify),以便可以从浏览器中调用相同的功能。 Browserify拒绝构建。我不断收到此错误消息:
> npx browserify index.js
Error: Can't walk dependency graph: Cannot find module './build/Release/hello' from 'F:\workspace\c\addon\hello\index.js'
required by F:\workspace\c\addon\hello\index.js
at F:\workspace\c\addon\hello\node_modules\resolve\lib\async.js:136:35
at load (F:\workspace\c\addon\hello\node_modules\resolve\lib\async.js:155:43)
at onex (F:\workspace\c\addon\hello\node_modules\resolve\lib\async.js:180:17)
at F:\workspace\c\addon\hello\node_modules\resolve\lib\async.js:15:69
at FSReqCallback.oncomplete (fs.js:166:21)
我开始认为不可能将节点附加组件捆绑在一起供前端使用。但是,有没有一种方法可以解决此问题,并且能够为浏览器构建包含节点附加组件?也许是写我的index.js
之类的一种特殊方式?还是有其他方法可以创建可避免此问题的插件?
答案 0 :(得分:0)