scratchfoundation / scratch-gui

Graphical User Interface for creating and running Scratch 3.0 projects.
https://scratchfoundation.github.io/scratch-gui/develop/
BSD 3-Clause "New" or "Revised" License
4.41k stars 3.48k forks source link

prompt step is failed. 「wdm」: Failed to compile. #9071

Open You548 opened 1 year ago

You548 commented 1 year ago

Expected Behavior

staticmicrobitscratch-microbit-x.x.x.hex is found (x=any)

Actual Behavior

ERROR in ./src/generated/microbit-hex-url.cjs Module not found: Error: Can't resolve './....staticmicrobitscratch-microbit-1.2.0.hex' in 'D:\Scratch\Scratch-Testing\scratch-gui\src\generated'

Steps to Reproduce

normal step

Operating System and Browser

windows 10 / microsoft edge

mostADont commented 1 year ago

проблема в том, что на windows файл src\generated\microbit-hex-url.cjs генерируется со строкой вида 'module.exports = require('./....\static\microbit\scratch-microbit-1.2.0.hex');' и при запуске скрипт не может распознать путь. Чтобы это обойти я в файле scripts\prepublish.mjs заменил строку 102 на module.exports = require('./${(path.relative(relativeGeneratedDir, relativeHexFile)).replace(/\\/g, '/')}');, Это не очень красивый путь, но это быстрое решение которое я смог для себя найти.

IntzvDyunsi901 commented 1 year ago

postscript ploblem here:

ERROR in ./src/generated/microbit-hex-url.cjs
     Module not found: Error: Can't resolve './....staticmicrobitscratch-microbit-1.2.0.hex' in '~~~\scratch-gui\src\ generated'
      @ ./src/generated/microbit-hex-url.cjs 4:17-78
      @ ./src/lib/microbit-update.js
      @ ./src/containers/connection-modal.jsx
      @ ./src/components/gui/gui.jsx
      @ ./src/containers/gui.jsx
      @ ./src/playground/blocks-only.jsx
IntzvDyunsi901 commented 1 year ago

Предыдущее предложение было на английском, извините. У меня есть вопрос. Я знаю, что место для редактирования файла - это строка 102, но как и где ее заменить?

mostADont commented 1 year ago

Предыдущее предложение было на английском, извините. У меня есть вопрос. Я знаю, что место для редактирования файла - это строка 102, но как и где ее заменить?

я не утверждаю, что это решение хорошее, но мне оно помогло запустить проект. Файл в каталоге scripts: /scripts/prepublish.mjs строка 102: module.exports = require('./${path.relative(relativeGeneratedDir, relativeHexFile)}');,

заменить на: module.exports = require('./${path.relative(relativeGeneratedDir, relativeHexFile).replace(/\\/g, '/')}');,

это приведет путь, по которому ищется файл, к виду, понятному сборщику

если вы посмотрите на ошибку: resolve './....staticmicrobitscratch-microbit-1.2.0.hex'

то увидите, что сборщик взял ваш путь ./....\static\microbit\scratch-microbit-1.2.0.hex и убрал из него обратные слеши

обязательно после правки запустите npm install, чтобы заново собрался файл (src\generated\microbit-hex-url.cjs)

IntzvDyunsi901 commented 1 year ago

NOT FIX

mostADont commented 1 year ago

Могу предложить только так: Удалить: src/generated/ Изменить (как описано выше): scripts/prepublish.mjs Запустить: npm install

Проверить, что файл src/generated/microbit-hex-url.cjs изменился и не содержит обратных слешей. Если все выполнено, но все равно ошибка, то скорее всего текст ошибки будет другой

You548 commented 1 year ago

я постараюсь

IntzvDyunsi901 commented 1 year ago

Я не могу, что мне делать (You548 и IntzvDyunsi901 - одно и то же лицо)

IntzvDyunsi901 commented 1 year ago

Причина в следующем: ERROR in ./src/generated/microbit-hex-url.cjs Module not found: Error: Can't resolve './....staticmicrobitscratch-microbit-1.2.0.hex' in '~~~\scratch-gui\src\ generated'