From 8e8d035ece40d20651ee3f2219d7a69e699512f4 Mon Sep 17 00:00:00 2001 From: LongYinan Date: Thu, 22 Jul 2021 13:59:05 +0800 Subject: [PATCH] perf(helper): reduce install size --- packages/helper/README.md | 16 +++++++++---- packages/helper/npm/darwin-x64/README.md | 3 --- packages/helper/npm/darwin-x64/package.json | 24 ------------------- packages/helper/npm/linux-x64-gnu/README.md | 3 --- .../helper/npm/linux-x64-gnu/package.json | 24 ------------------- packages/helper/npm/win32-x64-msvc/README.md | 3 --- .../helper/npm/win32-x64-msvc/package.json | 24 ------------------- packages/helper/package.json | 3 +-- packages/helper/src/loader.ts | 6 ++++- packages/helper/tsconfig.json | 6 ++++- yarn.lock | 8 +++---- 11 files changed, 26 insertions(+), 94 deletions(-) delete mode 100644 packages/helper/npm/darwin-x64/README.md delete mode 100644 packages/helper/npm/darwin-x64/package.json delete mode 100644 packages/helper/npm/linux-x64-gnu/README.md delete mode 100644 packages/helper/npm/linux-x64-gnu/package.json delete mode 100644 packages/helper/npm/win32-x64-msvc/README.md delete mode 100644 packages/helper/npm/win32-x64-msvc/package.json diff --git a/packages/helper/README.md b/packages/helper/README.md index d85c7f27..30b8d54e 100644 --- a/packages/helper/README.md +++ b/packages/helper/README.md @@ -1,6 +1,9 @@ # `@node-rs/helper` -> Helper library for node-rs +[![install size](https://packagephobia.com/badge?p=@node-rs/helper)](https://packagephobia.com/result?p=@node-rs/helper) +[![Downloads](https://img.shields.io/npm/dm/@node-rs/helper.svg?sanitize=true)](https://npmcharts.com/compare/@node-rs/helper?minimal=true) + +> Helper library for load native package. ## Usage @@ -9,14 +12,17 @@ Load native binding file from `dirname` ```ts -locateBinding(dirname: string): string +loadBinding(dirname: string, filename?: string = 'index', packageName?: string): string ``` - `dirname`, dirname which the **.node** binding file located -- return the full path of the binding file, throw if file not existed or platform not supported +- `filename`, the `napi.name` filed in you `package.json` +- `packageName`, the `name` filed in your `package.json`, `@swc/core` for example. + +- return native module ```ts -const { locateBinding } = require('@node-rs/helper') +const { loadBinding } = require('@node-rs/helper') -module.exports = require(locateBinding(__dirname)) +module.exports = loadBinding(__dirname, 'swc', '@swc/core') ``` diff --git a/packages/helper/npm/darwin-x64/README.md b/packages/helper/npm/darwin-x64/README.md deleted file mode 100644 index 2d9b7078..00000000 --- a/packages/helper/npm/darwin-x64/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# `@node-rs/helper-darwin-x64` - -This is the **x86_64-apple-darwin** binary for `@node-rs/helper` diff --git a/packages/helper/npm/darwin-x64/package.json b/packages/helper/npm/darwin-x64/package.json deleted file mode 100644 index e1b04f4f..00000000 --- a/packages/helper/npm/darwin-x64/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "@node-rs/helper-darwin-x64", - "version": "1.1.0", - "os": ["darwin"], - "cpu": ["x64"], - "main": "index.darwin-x64.node", - "files": ["index.darwin-x64.node"], - "description": "Helper library for node-rs", - "keywords": ["N-API", "napi", "Rust", "Performance"], - "author": "LongYinan ", - "homepage": "https://github.com/napi-rs/node-rs", - "license": "MIT", - "publishConfig": { - "registry": "https://registry.npmjs.org/", - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/napi-rs/node-rs.git" - }, - "bugs": { - "url": "https://github.com/napi-rs/node-rs/issues" - } -} diff --git a/packages/helper/npm/linux-x64-gnu/README.md b/packages/helper/npm/linux-x64-gnu/README.md deleted file mode 100644 index ba5c64ea..00000000 --- a/packages/helper/npm/linux-x64-gnu/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# `@node-rs/helper-linux-x64-gnu` - -This is the **x86_64-unknown-linux-gnu** binary for `@node-rs/helper` diff --git a/packages/helper/npm/linux-x64-gnu/package.json b/packages/helper/npm/linux-x64-gnu/package.json deleted file mode 100644 index a4bb06e0..00000000 --- a/packages/helper/npm/linux-x64-gnu/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "@node-rs/helper-linux-x64-gnu", - "version": "1.1.0", - "os": ["linux"], - "cpu": ["x64"], - "main": "index.linux-x64-gnu.node", - "files": ["index.linux-x64-gnu.node"], - "description": "Helper library for node-rs", - "keywords": ["N-API", "napi", "Rust", "Performance"], - "author": "LongYinan ", - "homepage": "https://github.com/napi-rs/node-rs", - "license": "MIT", - "publishConfig": { - "registry": "https://registry.npmjs.org/", - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/napi-rs/node-rs.git" - }, - "bugs": { - "url": "https://github.com/napi-rs/node-rs/issues" - } -} diff --git a/packages/helper/npm/win32-x64-msvc/README.md b/packages/helper/npm/win32-x64-msvc/README.md deleted file mode 100644 index 57f2ebc5..00000000 --- a/packages/helper/npm/win32-x64-msvc/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# `@node-rs/helper-win32-x64-msvc` - -This is the **x86_64-pc-windows-msvc** binary for `@node-rs/helper` diff --git a/packages/helper/npm/win32-x64-msvc/package.json b/packages/helper/npm/win32-x64-msvc/package.json deleted file mode 100644 index accb0d80..00000000 --- a/packages/helper/npm/win32-x64-msvc/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "@node-rs/helper-win32-x64-msvc", - "version": "1.1.0", - "os": ["win32"], - "cpu": ["x64"], - "main": "index.win32-x64-msvc.node", - "files": ["index.win32-x64-msvc.node"], - "description": "Helper library for node-rs", - "keywords": ["N-API", "napi", "Rust", "Performance"], - "author": "LongYinan ", - "homepage": "https://github.com/napi-rs/node-rs", - "license": "MIT", - "publishConfig": { - "registry": "https://registry.npmjs.org/", - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/napi-rs/node-rs.git" - }, - "bugs": { - "url": "https://github.com/napi-rs/node-rs/issues" - } -} diff --git a/packages/helper/package.json b/packages/helper/package.json index 9a85944e..1f6579d7 100644 --- a/packages/helper/package.json +++ b/packages/helper/package.json @@ -24,7 +24,6 @@ "build": "exit 0;" }, "dependencies": { - "@napi-rs/triples": "^1.0.2", - "tslib": "^2.3.0" + "@napi-rs/triples": "^1.0.3" } } diff --git a/packages/helper/src/loader.ts b/packages/helper/src/loader.ts index 58a8b935..741e759e 100644 --- a/packages/helper/src/loader.ts +++ b/packages/helper/src/loader.ts @@ -27,7 +27,11 @@ export function loadBinding(dirname: string, filename = 'index', packageName?: s } const localFilePath = join(dirname, `${filename}.${triple.platformArchABI}.node`) if (existsSync(localFilePath)) { - return require(localFilePath) + try { + return require(localFilePath) + } catch (e) { + additionalErrorMsg += `file: ${localFilePath} existed but error occurred while require it: ${e.message ?? e} \n` + } } } diff --git a/packages/helper/tsconfig.json b/packages/helper/tsconfig.json index 524c13ab..a8f01478 100644 --- a/packages/helper/tsconfig.json +++ b/packages/helper/tsconfig.json @@ -3,7 +3,11 @@ "compilerOptions": { "outDir": "lib", "rootDir": "./src", - "composite": true + "composite": true, + "sourceMap": false, + "inlineSourceMap": false, + "noEmitHelpers": false, + "importHelpers": false }, "include": ["./src"] } diff --git a/yarn.lock b/yarn.lock index dc4f6c1e..27acedea 100644 --- a/yarn.lock +++ b/yarn.lock @@ -967,10 +967,10 @@ toml "^3.0.0" tslib "^2.2.0" -"@napi-rs/triples@^1.0.2": - version "1.0.2" - resolved "https://registry.npmjs.org/@napi-rs/triples/-/triples-1.0.2.tgz#2ce4c6a78568358772008f564ee5009093d20a19" - integrity sha512-EL3SiX43m9poFSnhDx4d4fn9SSaqyO2rHsCNhETi9bWPmjXK3uPJ0QpPFtx39FEdHcz1vJmsiW41kqc0AgvtzQ== +"@napi-rs/triples@^1.0.3": + version "1.0.3" + resolved "https://registry.npmjs.org/@napi-rs/triples/-/triples-1.0.3.tgz#76d6d0c3f4d16013c61e45dfca5ff1e6c31ae53c" + integrity sha512-jDJTpta+P4p1NZTFVLHJ/TLFVYVcOqv6l8xwOeBKNPMgY/zDYH/YH7SJbvrr/h1RcS9GzbPcLKGzpuK9cV56UA== "@nodelib/fs.scandir@2.1.5": version "2.1.5"