@rspack/cli
Advanced tools
+0
-3
@@ -15,5 +15,2 @@ #!/usr/bin/env node | ||
| // make it easier to identify the process via activity monitor or other tools | ||
| process.title = 'rspack-node'; | ||
| import { RspackCLI } from '../dist/index.js'; | ||
@@ -20,0 +17,0 @@ |
+4
-4
@@ -5,3 +5,2 @@ import node_path from "node:path"; | ||
| import node_fs from "node:fs"; | ||
| import { Readable } from "node:stream"; | ||
| import { createRequire } from "node:module"; | ||
@@ -597,3 +596,3 @@ import { fileURLToPath, pathToFileURL } from "node:url"; | ||
| }; | ||
| const commonOptionsForBuildAndServe = (command)=>command.option('-d, --devtool <value>', 'specify a developer tool for debugging. Defaults to `cheap-module-source-map` in development and `source-map` in production.').option('--entry <entry>', 'entry file', { | ||
| const commonOptionsForBuildAndServe = (command)=>command.option('-d, --devtool <value>', 'set source map style for debugging. Use `false` to disable source maps.').option('--entry <entry>', 'entry file', { | ||
| type: [ | ||
@@ -638,4 +637,5 @@ String | ||
| if (options.json) { | ||
| const stream = await import("node:stream"); | ||
| const jsonExt = await import("./json-ext.js"); | ||
| createJsonStringifyStream = (value)=>Readable.from(jsonExt.stringifyChunked(value)); | ||
| createJsonStringifyStream = (value)=>stream.Readable.from(jsonExt.stringifyChunked(value)); | ||
| } | ||
@@ -1149,3 +1149,3 @@ const errorHandler = (error, stats)=>{ | ||
| program.help(); | ||
| program.version("2.0.3"); | ||
| program.version("2.0.4"); | ||
| } | ||
@@ -1152,0 +1152,0 @@ wrapAction(fn) { |
+10
-6
@@ -5,16 +5,20 @@ import node_fs from "node:fs"; | ||
| const DEFAULT_RUST_TRACE_LAYER = 'logger'; | ||
| const DEFAULT_RUST_TRACE_LOGGER_OUTPUT = 'rspack.log'; | ||
| const DEFAULT_RUST_TRACE_PERFETTO_OUTPUT = 'rspack.pftrace'; | ||
| function isTerminalTraceOutput(output) { | ||
| return 'stdout' === output || 'stderr' === output; | ||
| } | ||
| async function applyProfile(filterValue, traceLayer = DEFAULT_RUST_TRACE_LAYER, traceOutput) { | ||
| const { asyncExitHook } = await import("./exit-hook.js"); | ||
| if ('logger' !== traceLayer && 'perfetto' !== traceLayer) throw new Error(`unsupported trace layer: ${traceLayer}`); | ||
| if (traceOutput && 'perfetto' === traceLayer && isTerminalTraceOutput(traceOutput)) throw new Error('RSPACK_TRACE_OUTPUT=stdout|stderr is only supported for the logger trace layer. The perfetto trace layer requires a file path.'); | ||
| const timestamp = Date.now(); | ||
| const defaultOutputDir = node_path.resolve(`.rspack-profile-${timestamp}-${process.pid}`); | ||
| if (traceOutput) { | ||
| if ('stdout' !== traceOutput && 'stderr' !== traceOutput) traceOutput = node_path.resolve(defaultOutputDir, traceOutput); | ||
| if (!isTerminalTraceOutput(traceOutput)) traceOutput = node_path.resolve(defaultOutputDir, traceOutput); | ||
| } else { | ||
| const defaultRustTracePerfettoOutput = node_path.resolve(defaultOutputDir, 'rspack.pftrace'); | ||
| const defaultRustTraceLoggerOutput = 'stdout'; | ||
| const defaultTraceOutput = 'perfetto' === traceLayer ? defaultRustTracePerfettoOutput : defaultRustTraceLoggerOutput; | ||
| traceOutput = defaultTraceOutput; | ||
| const defaultRustTraceOutput = 'perfetto' === traceLayer ? DEFAULT_RUST_TRACE_PERFETTO_OUTPUT : DEFAULT_RUST_TRACE_LOGGER_OUTPUT; | ||
| traceOutput = node_path.resolve(defaultOutputDir, defaultRustTraceOutput); | ||
| } | ||
| await ensureFileDir(traceOutput); | ||
| if (!isTerminalTraceOutput(traceOutput)) await ensureFileDir(traceOutput); | ||
| await rspack.experiments.globalTrace.register(filterValue, traceLayer, traceOutput); | ||
@@ -21,0 +25,0 @@ asyncExitHook(rspack.experiments.globalTrace.cleanup, { |
+4
-4
| { | ||
| "name": "@rspack/cli", | ||
| "version": "2.0.3", | ||
| "version": "2.0.4", | ||
| "description": "CLI for rspack", | ||
@@ -33,3 +33,3 @@ "homepage": "https://rspack.rs", | ||
| "@microsoft/api-extractor": "^7.58.7", | ||
| "@rslib/core": "^0.21.4", | ||
| "@rslib/core": "^0.21.5", | ||
| "@rspack/dev-server": "^2.0.1", | ||
@@ -45,4 +45,4 @@ "cac": "^7.0.0", | ||
| "typescript": "^6.0.3", | ||
| "@rspack/core": "2.0.3", | ||
| "@rspack/test-tools": "2.0.3" | ||
| "@rspack/core": "2.0.4", | ||
| "@rspack/test-tools": "2.0.4" | ||
| }, | ||
@@ -49,0 +49,0 @@ "peerDependencies": { |
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 7 instances in 1 package
High entropy strings
Supply chain riskContains high entropy strings. This could be a sign of encrypted data, leaked secrets or obfuscated code.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 7 instances in 1 package
High entropy strings
Supply chain riskContains high entropy strings. This could be a sign of encrypted data, leaked secrets or obfuscated code.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
1761607
0.01%8300
0.02%