This repository was archived by the owner on Feb 3, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcriarAmbienteBabel.sh
More file actions
executable file
·118 lines (100 loc) · 3.6 KB
/
criarAmbienteBabel.sh
File metadata and controls
executable file
·118 lines (100 loc) · 3.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#!/bin/bash
#
# criarAmbienteBabel.sh - Cria um ambiente Babel/WebPack no seu projeto node.js
#
# Site: https://github.com/RuanOlive
# Autor: Ruan Oliveira Sarmento <ruansarmento732@gmail.com>
#
#------------------------------------------------------------------------
# Este programa cria e instala os arquivos necessarios no seu projeto node.js
# para que você possa usar o babel.
#-------------------------------------------------------------------------
#
# Histórico:
#
# v1.0 15-04-2022, Ruan Oliveira:
# - Versão inicial, cria estrutura básica do Babel sem o Webpack.
#
# v2.0 16-04-2022, Ruan Oliveira:
# - Adiciona a Verificação se existe o package.json
# - Adiciona a instalação do WebPack.
# - Cria uma estrutura de arquivos básica para o seu projeto.
# - Cria o script dev para executar o webpack-dev-server no seu projeto.
# - Cria o script build para executar o build do seu projeto.
# - Adiciona tratamento de erros.
#
# v2.1 20-04-2022, Ruan Oliveira:
# - Adicionada a criação do sourceMapFileName.
# - Arrumado o Bug do script de build.
#
# v3.0 24-04-2022-Stable, Ruan Oliveira:
# - Código Totalmente Refatorado.
# - Adicionada Nova Configuração do WebPack5 e Babel.
# - Removida a instalação de node modules Deprecated.
# - Versão Stable(Estável) do script.
#
# Licença: MIT.
# Verifica se o arquivo package.json existe.
if [[ -e ./package.json ]]; then
echo "Criando Projeto Babel/WebPack no diretório atual..."
#--------Instalação de dependencias--------
# WebPack
npm i webpack --save-dev
# Permite usar WebPack no terminal
npm i webpack-cli --save-dev
# Serve para criar um servidor de desenvolvimento
npm i webpack-dev-server --save-dev
# Babel
npm install babel-loader @babel/core --save-dev
npm install @babel/preset-env --save-dev
#-------Adicionando Scripts no package.json-------
# Em desenvolvimento usaremos o comando "npm run dev".
sed -i "/"scripts"/a\ \"dev\":\"webpack-dev-server --mode=development \", " package.json
# Em produção usaremos o comando "npm run build".
sed -i "/"scripts"/a\ \"build\":\"webpack --mode=production \", " package.json
#--------Criando arquivos--------
# Cria a estrutura de arquivos básica do seu projeto.
mkdir ./public
touch ./public/index.html
mkdir ./src
touch ./src/main.js
# Cria o arquivo de configuração do WebPack.
touch ./webpack.config.js
# Cria o arquivo de configuração do Babel.
touch ./babel.config.json
# Escreve todas as configurações necessárias dentro do arquivo de
# configuração do Babel.
echo "{
\"presets\": [\"@babel/preset-env\"]
}" > ./babel.config.json
# Escreve todas as configurações necessárias dentro do arquivo de
# configuração do WebPack.
echo "
const path = require('path');
module.exports = {
entry: './src/main.js',
mode: 'development',
output: {
path: path.resolve(__dirname, './public/'),
filename: 'bundle.js',
},
module: {
rules: [{
test: /\.m?js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env']
}
}
}],
}
};" > webpack.config.js
echo "Finalizado, execute npm run dev, para rodar o ambiente de
desenvolvimento ou npm run build para criar o bundle.js ."
else
echo "O arquivo package.json não existe!, Execute npm init para criar um
projeto node.js"
exit
fi