0.1.1 • Published 3 years ago

kmgsimulator v0.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

Ref

https://github.com/nodejs/node-addon-examples

create node-cpp-addon from scratch

1.make dir

mkdir node-cpp-addon-hello
cd node-cpp-addon-hello

2.create hello.cpp

(fill the conten)

#include <assert.h>
#include <node_api.h>

static napi_value Method(napi_env env, napi_callback_info info) {
  napi_status status;
  napi_value world;
  status = napi_create_string_utf8(env, "world", 5, &world);
  assert(status == napi_ok);
  return world;
}

#define DECLARE_NAPI_METHOD(name, func)                                        \
  { name, 0, func, 0, 0, 0, napi_default, 0 }

static napi_value Init(napi_env env, napi_value exports) {
  napi_status status;
  napi_property_descriptor desc = DECLARE_NAPI_METHOD("hello", Method);
  status = napi_define_properties(env, exports, 1, &desc);
  assert(status == napi_ok);
  return exports;
}

NAPI_MODULE(NODE_GYP_MODULE_NAME, Init)

3. create binding.gyp

{
  "targets": [
    {
      "target_name": "hello",
      "sources": [ "hello.cpp" ]
    }
  ]
}

4. configure and build

node-gyp configure
node-gyp build

5. create index.js

6. npm test

npm init
npm install bindings --save
npm test

7. publish

npm login
npm publish
npm cache clean --force

npm config set proxy null

npm config set http-proxy null

npm config set https-proxy null

npm unpublish kminjecter --force //强制删除,这个是撤销24小时发布的包,有些包发布久了,这个方法不会再管用了
npx force-unpublish package-name '原因描述' //是删除已经发布好的包
npx force-unpublish kminjecter 'rename as kminjector' //

npm rm kminjecter