Как добавить этап предварительной компиляции в извлеченное приложение create-react-app?

В стандартном извлеченном приложении create-response-app при изменении файла исходного кода вы увидите:

Compiling...
Compiled successfully!

Я хочу, чтобы пользовательская команда выполнялась перед этапом компиляции каждый раз, когда изменяется файл (в идеале с определенным расширением). Я пробовал использовать плагин webpack-shell:

plugins: [
    ...
    new WebpackShellPlugin({
        onBuildStart: ['echo "Starting"'],
    })
]

И теперь я получаю вот что:

node run start

> webapp@0.1.0 prestart /path/to/a/webapp
> node scripts/start.js

Starting type checking and linting service...
Using 1 worker with 2048MB memory limit
Watching: /path/to/a/webapp/src
Executing pre-build scripts
"Starting"
Starting the development server...

ts-loader: Using typescript@3.0.1 and /path/to/a/webapp/tsconfig.json
Compiled successfully!

You can now view webapp in the browser.

    Local:            http://localhost:3000/
    On Your Network:  http://192.168.2.159:3000/

Note that the development build is not optimized.
To create a production build, use npm run build.

Compiling...
Compiled successfully!
Compiling...
Compiled successfully!
Compiling...
Compiled successfully!

Как вы можете заметить, он работает только один раз, перед первой компиляцией, и больше никогда не вызывается.

Есть ли другое место, куда я должен подключить свой сценарий? Или другой плагин?

вместо этого используйте onBuildExit.

PlayMa256 13.09.2018 19:31

@ PlayMa256 ну, теперь он запускает скрипт каждый раз, когда я что-то меняю, но - как следует из названия - это происходит после компиляции, так что не совсем то, что я хотел бы иметь = / Вы знаете, почему это происходит? Ошибка в плагине? Мое непонимание процесса строительства?

dimart.sp 13.09.2018 20:36

Итак, лучший способ - создать плагин на хуке beforeRun: github.com/webpack/webpack/blob/master/lib/Compiler.js#L58

PlayMa256 13.09.2018 20:52

спасибо, не знал об этом, новичок в webpack, я разберусь :)

dimart.sp 13.09.2018 21:04
0
4
163
0

Другие вопросы по теме