Erros no npm run build no projeto vue - resolvido

notei que vc tem um --mode homologacao no action do git. Ao invés de tirar, pode trocar também… Aí ficaria:

"build": "tsc && vite build --mode homologacao",
1 curtida

Agora deu este erro

$ npm run build --mode homologacao

quizme@0.0.1 build
tsc && vite build --mode homologacao homologacao
src/main.ts(1,17): error TS2307: Cannot find module ‘./App.vue’ or its corresponding type declarations.
src/router/MainRoutes.ts(7,27): error TS2307: Cannot find module ‘@/layouts/full/FullLayout.vue’ or its corresponding type declarations.
src/router/MainRoutes.ts(16,31): error TS2307: Cannot find module ‘@/views/dashboards/Analytical.vue’ or its corresponding type declarations.
src/router/MainRoutes.ts(21,31): error TS2307: Cannot find module ‘@/views/apps/analise-tema/AnaliseTema.vue’ or its corresponding type declarations.
src/router/MainRoutes.ts(26,31): error TS2307: Cannot find module ‘@/views/apps/analise-tema/AnaliseTemaPorId.vue’ or its corresponding type declarations.
src/router/MainRoutes.ts(31,31): error TS2307: Cannot find module ‘@/views/apps/tema/Tema.vue’ or its corresponding type declarations.
src/router/MainRoutes.ts(36,31): error TS2307: Cannot find module ‘@/views/apps/tema/TemaPorId.vue’ or its corresponding type declarations.
src/router/MainRoutes.ts(41,31): error TS2307: Cannot find module ‘@/views/apps/tema/Tema.vue’ or its corresponding type declarations.
src/router/index.ts(10,31): error TS2307: Cannot find module ‘@/views/authentication/Error.vue’ or its corresponding type declarations.
Cleaning up project directory and file based variables
00:01
ERROR: Job failed: exit code 1

Rodou local e o mesmo erro

vi que em todos os arquivos .ts ele criou um arquivo com o mesmo nome com a extensão .js

Parece q foram dois homologação. Mostr seu Vite config. Pq esses js q foram criados, eram pra ir pra pasta build/dist.

Deleta esses js primeiro, pode dar um git stash

1 curtida

Referente a esse erro, vai na pasta @types/index.d.ts e cola isso

declare module '*.vue';
1 curtida

vite.config.ts

import vue from "@vitejs/plugin-vue";
import { fileURLToPath, URL } from "url";
import { defineConfig } from "vite";
import vuetify from "vite-plugin-vuetify";

export default defineConfig({
  plugins: [
    vue(),
    vuetify({
      autoImport: true,
      styles: { configFile: "src/scss/variables.scss" },
    }),
  ],
  resolve: {
    alias: {
      "@": fileURLToPath(new URL("./src", import.meta.url)),
    },
  },
  define: {
    'process.env': {}
  },
  css: {
    preprocessorOptions: {
      scss: {},
    },
  },
  optimizeDeps: {
    exclude: ["vuetify"],
    entries: ["./src/**/*.vue"],
  },
});

Local não deu erro, mas continuou gerando os .js

Não vou testar no servidor ainda, por causa destes arquivos .js, que estão sendo gerados desta forma

Local gerou a pasta dist

Alguma novidade ?

calmaí pô, eu trabalho kk


vai no seu package.json e muda seu scripts.build pra isso:

"build": "vue-tsc && vite build",
1 curtida

Eu sei kkkkkk
Desculpa ai.
vou testar

Agora build fica parado neste erro

Resolvido.

Este erro era poque tinhas uns console.log

Mas cê nem mudou o build, parou de criar os arquivos em js?

Eu ainda tô encucado como “vite homologacao” funciona kkkkkk

1 curtida

No arquivo tsconfig.json, inclui “outDir”: “dist”, ai gerou os arquivos .js no local correto

Estava assim:

{
  "extends": "@vue/tsconfig/tsconfig.web.json",
  "include": ["env.d.ts", "src/**/*", "src/**/*.vue"],
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@/*": ["./src/*"]
    },
    "allowJs": true,
    "types": ["node", "vite/client"],
    "target": "ESNext"
  },
  "references": [
    {
      "path": "./tsconfig.vite-config.json"
    }
  ]
}

Ficando assim:

{
  "extends": "@vue/tsconfig/tsconfig.web.json",
  "include": ["env.d.ts", "src/**/*", "src/**/*.vue"],
  "compilerOptions": {
    "outDir": "dist",
    "baseUrl": ".",
    "paths": {
      "@/*": ["./src/*"]
    },
    "allowJs": true,
    "types": ["node", "vite/client"],
    "target": "ESNext"
  },
  "references": [
    {
      "path": "./tsconfig.vite-config.json"
    }
  ]
}

Vendo aqui na verdade o vite homologacao, não funcionou.
O que funcionou foi o npm run build, com o .env para os endereços corretos.

Estou avaliando novamente

Gerei local e agora funcionou. O comando local foi npm run homologacao.

no arquivo .env.homologacao, endereços corretos

VITE_APP_BACKEND_URL=https://xxxxx:8443
VITE_APP_SOCK_URL=wss://xxxxx:8443/socket
VITE_APP_KEYCLOAK_URL=https://xxxxx:8443/

.env.production e .env

VITE_APP_BACKEND_URL=
VITE_APP_SOCK_URL=
VITE_APP_KEYCLOAK_URL=

.env.development

VITE_APP_BACKEND_URL=http://127.0.0.1:8002
VITE_APP_SOCK_URL=wss://localhost:8080/socket
VITE_APP_KEYCLOAK_URL=http://localhost:8080/

package.json

  "scripts": {
    "dev": "vite --port 8081",
    "build": "vue-tsc --noEmit && vite build",
    "homologacao": "vue-tsc --noEmit && vite build --mode homologacao",
    "preview": "vite preview --port 5050",
    "typecheck": "vue-tsc --noEmit",
    "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore"
  },

Peguei os arquivos e pastas geradas e coloquei no servidor manualmente e funcionou

Ai no .gitlab-ci.yml
fiz assim:

stages:
  - install
  - deploy

install_and_build:
  image: node:16
  stage: install
  cache:
    paths:
      - node_modules/
  only:
    - homologacao
  script:
    - node -v
    #- rm ./package-lock.json
    - npm install
    - npm run homologacao
    - ls
  artifacts:
    paths:
      - dist/

deploy:
  stage: deploy
  only:
    - homologacao
  before_script:
    - apt-get update -qq && apt-get install -y -qq sshpass && apt-get install zip unzip -y
    - zip -r dist.zip dist
  script:
    - sshpass -V
    - export SSHPASS=$CI_USER_PASS
    - sshpass -e scp -o StrictHostKeyChecking=no dist.zip gitlab-ci@$HOST_IP_APP_HOM:/home/gitlab-ci/frontend/
    - sshpass -e ssh -tt -o StrictHostKeyChecking=no gitlab-ci@$HOST_IP_APP_HOM sudo unzip -o /home/gitlab-ci/frontend/dist.zip
    - sshpass -e ssh -tt -o StrictHostKeyChecking=no gitlab-ci@$HOST_IP_APP_HOM sudo rm -rf /var/www/html/*
    - sshpass -e ssh -tt -o StrictHostKeyChecking=no gitlab-ci@$HOST_IP_APP_HOM sudo mv dist/* /var/www/html/
    - sshpass -e ssh -tt -o StrictHostKeyChecking=no gitlab-ci@$HOST_IP_APP_HOM sudo systemctl restart apache2

solução

só lembrando que o .env não interfere em nada no build.


mas vc disse q a dist já tava sendo gerada antes. E aqueles .js estavam sendo gerados pq o build tava só “tsc” e não “vue-tsc”.


show q deu certo

1 curtida