configurar rapidamente Babel para compilar códigos de Javascript Es6+ em ambiente de nó.
a criação de Babel para compilar es6+ códigos Javascript em um compatível com versões anteriores versão de JavaScript no atual e navegadores mais antigos ou ambientes é provavelmente a coisa mais fácil que eu já vi, como um desenvolvedor. No entanto, ele me levou um tempo para perceber isso e que era devido ao fato de que Babel não é apenas um pacote de plug em seu projeto e ele começa a tocar, mas você realmente precisa para obter vários pacotes juntos para fazê-lo funcionar, sabendo-se o direito de pacotes para você escolher pode ser confuso. Neste post do blog, eu estaria explicando como você pode configurar Babel para ajudá-lo a compilar seus códigos es6, es7, es8 etc Javascript em versões do Javascript que podem ser executados sem erros no tempo de execução NodeJS.como eu disse anteriormente, fazer Babel trabalhar envolve obter um par de pacotes de npm
, então vamos começar. O primeiro pacote que estaríamos instalando é babel-core
. Este é o motor babel, mas ele realmente não pode fazer nada por si mesmo, ele precisa de alguns outros pacotes para ajudá-lo.
Executar
npm install @babel/core --save
para instalar babel-core
O segundo pacote de nós seria a instalação é o babel-cli
. Este pacote garante que nós somos capazes de usar Babel a partir da linha de comando e uma vez que estamos trabalhando em um ambiente de nó devemos definitivamente precisar disso.
Executar
npm install @babel/cli --save
para instalar babel-cli
Você pode querer incluir uma babel de script no script seção do package.json
como esta:
"scripts": {
... "babel": "./node_modules/.bin/babel",
...}
Isso nos ajudaria a evitar a digitação de longos e confusos comandos na interface de linha de comando, cada vez que deseja compilar.
Testing
Now, with these two packages, we can actually do something with babel, just to feel what babel is, however, no transformation would occur yet.
Criar uma test.js
arquivo e escrever um pouco de JavaScript es6 códigos nele, em seguida, vá para a linha de comando e executar o
npm run babel test.js -- --out-file compiledTest.js
Você deve ver um novo compiledTest.js
arquivo e este arquivo deve conter exatamente a mesma coisa que você escreveu: test.js
, então, não compilar o ocorrido, mas Babel está trabalhando.
o comando que executamos acima é simplesmente dizer a Babel para compilar otest.js
ficheiro para um ficheiro de saída chamado compiledTest.js
. Se você precisa compilar arquivos em um diretório apenas fazer:
npm run babel ./path/to/sourceCodes --out-dir ./path/to/destination
Assim, para obter Babel para fazer o compilar, precisamos instalar alguns plugins para ajudar a babel-core. A verdade é que babel não faz nada em si mesmo, ele usa plugins instalados para realizar sua magia. Para nós, ser capaz de compilar es6+ códigos, devemos instalar o env
preset
Executar
npm install @babel/preset-env --save
instalarenv
preset
Aguarde, não digo babel precisa de plugins, assim que o inferno está pré-definido? Bem, uma predefinição é apenas um grupo de plugins, então eu estou certo, babel precisa de um plugin ou pluginS.
Oenv
preset é um grupo de plugins que ajudam a compilar versões modernas/futuras do JavaScript (ES2015, ES2016, etc.) em uma versão suportada atualmente do javascript.
Depois de instalar esse pacote, precisamos dizer a Babel,
hey guy, acabei de instalar um conjunto de plugins que quero que você use para a minha compilação.
Nós iria fazer isso através da criação de uma .babelrc
arquivo e arquivo contém este trecho de código
{
"presets" :
}
Agora, vá para a linha de comando e tente compilar o nosso test.js
arquivo novamente.
Se compiledTest.js
arquivo contém o es5 versão de test.js
após a compilação é feita, então, que é isso; temos apenas babel, mas se isso não acontecer, então você pode querer verificar se tudo correu bem desde o início.
apenas para confirmação, a sua estrutura de ficheiros deverá ser algo semelhante a isto:
|- node_modules
|- package.json
|- test.js
|- compiledTest.js
|- .babelrc
compilação na altura
por vezes, não quer compilar todos os seus códigos antes de os Executar; só quer que a compilação e execução aconteça ao mesmo tempo. Para isso, você deve usar o comando babel-node. Este comando vem com o pacote babel-cli
e é como um substituto para o comando node
. Então, em vez de fazer algo assim node ./path/to/file
para executar o seu ficheiro, você faria babel-node ./path/to/file
para compilar e executar o ficheiro ao mesmo tempo.
em Nota, o babel-o nó não está na sua linha de comando, por padrão, então você pode precisar modificar o script seção do package.json
para incluir
"scripts": {
..."babel-node": "./node_modules/.bin/babel-node",
...}
E executar o arquivo como este:
npm run babel-node ./path/to/file
Conclusão
eu escrevi/atualizado este blog com o babel-core na versão 7.2.0, se você descobrir que babel fez algumas alterações recentes na definição de processo em algumas versões posteriores, você pode deixe-me saber ([email protected] para que eu iria atualizar este post, obrigado.
Leave a Reply