mirror of
https://github.com/velopack/velopack.git
synced 2025-10-25 15:19:22 +00:00
Get nodejs test bundling working
This commit is contained in:
2
samples/NodeJSElectron/package-lock.json
generated
2
samples/NodeJSElectron/package-lock.json
generated
@@ -11218,7 +11218,7 @@
|
||||
"node_modules/velopack": {
|
||||
"version": "0.0.0",
|
||||
"resolved": "file:../../src/lib-nodejs/velopack-0.0.0.tgz",
|
||||
"integrity": "sha512-zzbA7HSPgp43qRVSpiODF/KxLN5MvUi4dq3iPykv10m0LCA96EVWuMFODD0ahzhxpylSFLLMGI18k3f88B8bsQ==",
|
||||
"integrity": "sha512-KVS2ralmScgT0iB+f5OsaMHiGSGi9Mv1Xyyf2x5k/zSPNqZ4M1UtMFMaHzPqmK3LrV3Lwmkuf9T7C5LEUsS08w==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@neon-rs/load": "^0.1.73"
|
||||
|
||||
@@ -4,12 +4,25 @@ const path = require("node:path");
|
||||
|
||||
const platform = os.platform();
|
||||
|
||||
function makeCopies(input) {
|
||||
// this is obviously not correct for a "production" bundle, but it is used for testing
|
||||
// creating a "node" module at all of the expected production locations allows us to test
|
||||
// webpack require resolution and native module bundling etc.
|
||||
fs.mkdirSync("./lib/native");
|
||||
fs.copyFileSync(input, "./lib/native/velopack_nodeffi_win_x86_msvc.node");
|
||||
fs.copyFileSync(input, "./lib/native/velopack_nodeffi_win_x64_msvc.node");
|
||||
fs.copyFileSync(input, "./lib/native/velopack_nodeffi_win_arm64_msvc.node");
|
||||
fs.copyFileSync(input, "./lib/native/velopack_nodeffi_osx.node");
|
||||
fs.copyFileSync(input, "./lib/native/velopack_nodeffi_linux_x64_gnu.node");
|
||||
fs.copyFileSync(input, "./lib/native/velopack_nodeffi_linux_arm64_gnu.node");
|
||||
}
|
||||
|
||||
if (platform == "win32") {
|
||||
fs.copyFileSync("../../target/debug/velopack_nodeffi.dll", "lib/debug.node");
|
||||
makeCopies("../../target/debug/velopack_nodeffi.dll");
|
||||
} else if (platform == "darwin") {
|
||||
fs.copyFileSync("../../target/debug/libvelopack_nodeffi.dylib", "lib/debug.node");
|
||||
makeCopies("../../target/debug/libvelopack_nodeffi.dylib");
|
||||
} else if (platform == "linux") {
|
||||
fs.copyFileSync("../../target/debug/libvelopack_nodeffi.so", "lib/debug.node");
|
||||
makeCopies("../../target/debug/libvelopack_nodeffi.so");
|
||||
} else {
|
||||
throw new Error("Unsupported platform: " + platform);
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
"test": "npm run dev && cross-env VELOPACK_RESTART=true VELOPACK_DEBUG=true jest",
|
||||
"dev": "cargo build -p velopack_nodeffi && tsc -p tsconfig.build.json && node copy-lib.js",
|
||||
"build": "tsc -p tsconfig.build.json",
|
||||
"clean": "del-cli **/*.node lib",
|
||||
"clean": "del-cli **/*.node lib velopack-*.tgz",
|
||||
"lint": "prettier . --write"
|
||||
},
|
||||
"author": "Velopack Ltd, Caelan Sayler",
|
||||
|
||||
@@ -2,18 +2,12 @@ import { proxy } from "@neon-rs/load";
|
||||
|
||||
module.exports = proxy({
|
||||
platforms: {
|
||||
"win32-x86-msvc": () =>
|
||||
require("./native/velopack_nodeffi_win_x86_msvc.node"),
|
||||
"win32-x64-msvc": () =>
|
||||
require("./native/velopack_nodeffi_win_x64_msvc.node"),
|
||||
"win32-arm64-msvc": () =>
|
||||
require("./native/velopack_nodeffi_win_arm64_msvc.node"),
|
||||
"win32-x86-msvc": () => require("./native/velopack_nodeffi_win_x86_msvc.node"),
|
||||
"win32-x64-msvc": () => require("./native/velopack_nodeffi_win_x64_msvc.node"),
|
||||
"win32-arm64-msvc": () => require("./native/velopack_nodeffi_win_arm64_msvc.node"),
|
||||
"darwin-x64": () => require("./native/velopack_nodeffi_osx.node"),
|
||||
"darwin-arm64": () => require("./native/velopack_nodeffi_osx.node"),
|
||||
"linux-x64-gnu": () =>
|
||||
require("./native/velopack_nodeffi_linux_x64_gnu.node"),
|
||||
"linux-arm64-gnu": () =>
|
||||
require("./native/velopack_nodeffi_linux_arm64_gnu.node"),
|
||||
"linux-x64-gnu": () => require("./native/velopack_nodeffi_linux_x64_gnu.node"),
|
||||
"linux-arm64-gnu": () => require("./native/velopack_nodeffi_linux_arm64_gnu.node"),
|
||||
},
|
||||
debug: () => require("./debug.node"),
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user