Use может использовать alanode
двоичный файл из транспортера ÀLaMode (0 зависимостей в отличие от Babel ~ 250), который выполняет регулярное выражение на основе импорта в модули в Node.
npm i alanode --save-dev
yarn add alanode
Затем добавьте в пакет. json скрипт:
{
"name": "your-package",
"scripts": {
"test": "...etc",
"alanode": "alanode"
}
}
После этого вы можете запускать свои скрипты с ним:
$> npm run alanode -- app
Или, если используете пряжу, просто следующее, и вы не нужно добавлять скрипт в пакет. json:
$> yarn alanode app
Если вы хотите запустить стандартный узел без прокси alanode
, вам нужно создать файл, который требует alamode
, например, src/index.js
:
require('alamode')()
require('./app')
Это называется require hook : каждый файл JS будет сначала запускаться с функцией транспиляции для обновления этих импортов до require
заявления и экспорт в module.export
назначения. Таким образом, импорт будет переноситься автоматически, даже если вы работаете с простым Node. Затем вы также можете собрать свой исходный код:
$> yarn alamode src -o build -s
Где -o
- это папка сборки, а -s
означает, что нет исходных карт, которые вам не нужны, так как вывод очень похож на оригинал , за исключением того, что импорт / экспорт изменены.
Разница между yarn
и npm
заключается в том, что при двоичной установке локальной зависимости (она имеет bin
в package.json
), yarn
может быть использован только для запуска yarn <name-of-bin>
, чтобы запустить его, но npm
не может, поэтому вам нужно создать скрипт для него и даже затем добавить --
, чтобы аргументы передавались.
Просто предостережение: если у вас есть строки шаблонов, использующие протокол с //
, ÀLaMode может сломаться, например,
const URL = `ws://localhost`
export default socket
const something else = `test`
, поэтому вам нужно слегка настроить код, например
const URL = `ws:/` + `/localhost
, поскольку 2 последовательных слеша вызывают замену комментария, чтобы предотвратить ложные срабатывания. Это немного неудобно.