Я собираю проект в бандл с использованием Webpack версии 5. В процессе сборки возникает ошибка, когда я запускаю собранный проект. Вот мой Webpack конфиг: ```javascript const path = require('path'); const TerserPlugin = require('terser-webpack-plugin'); const WebpackObfuscator = require('webpack-obfuscator'); const webpack = require('webpack'); const { constants } = require('os'); /** * * @param {*} env * @param {*} argv * @returns {import('webpack').Configuration} */ module.exports = (env, argv) => { return { mode: 'development' || 'production', entry: './src/index.ts', target: 'node', output: { filename: 'index.js', path: path.resolve('./bundle'), library: { type: 'commonjs2', }, libraryTarget: 'commonjs2', clean: true, }, resolve: { extensions: ['.ts', '.js', '.node'], }, module: { rules: [ { test: /\.ts$/, use: 'ts-loader', exclude: /node_modules/, }, { test: /\.(node)$/, loader: 'node-loader', options: { name: '[name]_[contenthash].[ext]', flags: constants.dlopen.RTLD_NOW, }, }, ], }, optimization: { splitChunks: false, minimize: false, minimizer: [ new TerserPlugin({ minify: TerserPlugin.swcMinify, terserOptions: { format: { comments: false }, }, extractComments: false, }), ], }, plugins: [ new webpack.optimize.LimitChunkCountPlugin({ maxChunks: 1 }) ], }; }; ``` При попытке запустить проект после сборки появляется следующая ошибка: ``` Error: Secret-Path\bundle\node_modules/onnxruntime-node/bin/napi-v3/win32/x64/onnxruntime_binding.node is not a valid Win32 application. Secret-Path\bundle\node_modules/onnxruntime-node/bin/napi-v3/ ``` Можете подсказать, в чем может быть проблема и как ее исправить?
Ошибка "не является действительным приложением Win32" обычно возникает, когда файл, который вы пытаетесь запустить, несовместим с вашей операционной системой или архитектурой. В данном случае проблема может быть связана с тем, что вы используете нативный модуль (файл с расширением `.node`), который не подходит для текущей конфигурации, либо он был неправильно собран или не корректно подключен в вашем проекте. Вот несколько шагов, которые можно предпринять для решения этой проблемы: ### 1. Убедитесь в совместимости архитектуры Проверьте, что версия модуля `onnxruntime-node`, которую вы используете, совместима с вашей операционной системой (Win32, x64) и архитектурой (x64, arm, arm64 и т.д.). Например, если вы собираете ваше приложение для x64, убедитесь, что все зависимости также x64. ### 2. Пересоберите модули Иногда помогает полная переустановка модулей. Попробуйте следующие команды в терминале: ```bash rm -rf node_modules npm install ``` и затем пересоберите ваш проект. ### 3. Проверьте конфигурацию Webpack Обратите внимание на то, как вы настраивали `target` в Webpack. Если ваше приложение будет работать на Node.js, `target: 'node'` должно быть правильным. Однако, возможно, вам потребуется использовать другие настройки в зависимости от статуса вашего проекта. Если вы собираете для браузера, измените `target` на 'web'. ### 4. Поменяйте конфигурацию для нативных модулей Иногда нативные модули требуют дополнительной конфигурации. Убедитесь, что у вас в `webpack.config.js` правильно указан `node-loader` для `.node` файлов: ```javascript { test: /\.node$/, use: 'node-loader', }, ``` ### 5. Путь к модулю Убедитесь, что путь к модулю `onnxruntime_binding.node` правильный. Путь должен указывать именно на сборку, которая подходит для вашей системы. Если данный модуль должен быть собран для вашего окружения, проверьте документацию для необходимых команд. ### 6. Попробуйте пакет `@napi-rs/onnxruntime` Если модуль `onnxruntime-node` вызывает проблемы, вы также можете попробовать использовать альтернативный пакет, такой как `@napi-rs/onnxruntime`, который может быть более совместим с вашим стеком. ### 7. Проверка версий Node.js Также убедитесь, что версия Node.js, которую вы используете, совместима с версией ваших модулей. Иногда обновление/понижение версии Node может помочь решить проблему. ### 8. Логи Проверьте логи ошибки после сборки и запуска приложения. Они могут дать дополнительную информацию о том, что не так с модулем. Если все вышеперечисленное не помогает, попробуйте более подробно изучить документацию к пакету `onnxruntime-node`, возможно там указаны проблемы совместимости или рекомендации по настройке.
Ответ можно найти тут :
Hi @samlhuillier you need to install this
https://aka.ms/vs/17/release/vc_redist.x64.exe
onnxruntime-node require you to have MSVS C++ redist
Переустановить и пересобрать аддон или скачать готовую сборку: https://onnxruntime.ai/docs/get-started/with-windo...