• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Ustawienia ścieżek dla TypeScript w tsconfig.json

Object Storage Arubacloud
+1 głos
198 wizyt
pytanie zadane 28 września 2020 w JavaScript przez Artek Stary wyjadacz (11,800 p.)

Już od kilku godzin nie mogę ogarnąć ustawień dla TypeScript'u. Chcę ustawić bezwzględne ścieżki w pliku tsconfig.json.  Tak wygląda plik : 

{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es5",
    "noImplicitAny": false,
    "sourceMap": false,
    "baseUrl": "resources",
    "paths" : {
      "@js/*" : ["js/*"],
      "@jscomponents/*" : ["js/components/*"],
      "@jsmodules/*" : ["js/modules/*"],
      "sass/*" : ["sass/*"],
      "sasscomponent/*" : ["sass/components/*"]
    }
  },
  "include": ["resources/js/**/*"],
  
}

Jaki jest magiczny sposób aby ustawić tak aby zamieniał mi np. @jscomponents na /resources/js/components  niezależnie od tego ile folderów będzie za @jscomponents ?

1 odpowiedź

0 głosów
odpowiedź 28 września 2020 przez Artek Stary wyjadacz (11,800 p.)
Wychodzi na to, że ścieżki są poprawnie rozpoznawane ale webpack nie jest w stanie zaimportować w pliku ts pliku z rozszerzeniem vue. Ktoś wie jak to zrobić?
komentarz 28 września 2020 przez ScriptyChris Mędrzec (190,190 p.)
Są jakieś błędy kompilacji? W jaki sposób importujesz pliki Vue do TS?
komentarz 28 września 2020 przez Artek Stary wyjadacz (11,800 p.)

Import - nie widzi wszystkiego oprócz 1 pliku z góry - bo ma rozszerzenie js. Wyświetla błąd : 

Cannot find module '@jscomponents-form-controls/textarea_combo.vue' or its corresponding type declarations.

import VueConstructor from '@jsmodules/basic.js';
import TextareaCombo from '@jscomponents-form-controls/textarea_combo.vue';
import IconStop from '@jscomponents-decoration/icon_stop.vue';
import IconConfirm from '@jscomponents-decoration/icon_confirm.vue';

const Vue = VueConstructor.build();

Vue.component('textarea-combo', TextareaCombo);
Vue.component('icon-stop', IconStop);
Vue.component('icon-confirm', IconConfirm);

Ustawienia webpacka 

.options({processCssUrls: false})
    .webpackConfig({
        resolve: {
            alias: {
                '@js' : path.resolve('resources/js'),
                '@jscomponents' : path.resolve('resources/js/components'),
                '@jsmodules' : path.resolve('resources/js/modules'),
                '@jscomponents-decoration' : path.resolve('resources/js/components/decoration'),
                '@jscomponents-form-controls' : path.resolve('resources/js/components/form_controls'),
                'sass' : path.resolve('resources/sass'),
                'sasscomponent' : path.resolve('resources/sass/components')
            },
            extensions: ["*", ".js", ".jsx", ".vue", ".ts", ".tsx"]
        },
        module: {
            rules: [
              {
                test: /\.ts$/,
                exclude: /node_modules|vue\/src/,
                loader: "ts-loader",
                options: { appendTsSuffixTo: [/\.vue$/] }
              }
            ]
          }
    })
    .sourceMaps();

Ustawienia w pliku tsconfig.js

{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es5",
    "noImplicitAny": false,
    "sourceMap": true,
    "baseUrl": "./",
    "paths" : {
      "@js/*" : ["js/*"],
      "@jscomponents/*" : ["resources/js/components/*"],
      "@jscomponents-decoration/*" : ["resources/js/components/decoration/*"],
      "@jscomponents-form-controls/*" : ["resources/js/components/form_controls/*"],
      "@jsmodules/*" : ["resources/js/modules/*"]
    }
  },
  "include": ["resources/js/**/*"],

}

 

1
komentarz 28 września 2020 przez Artek Stary wyjadacz (11,800 p.)

Rozwiązaniem jest jak się okazuje umieszczenie pliku o nazwie schims.vue.ts w folderze ze skryptami o następującej treści.

declare module "*.vue" {
    import Vue from 'vue';
    export default Vue;
  }

Chociaż dokładnie nie wiem o co chodzi jeszcze.

Podobne pytania

0 głosów
0 odpowiedzi 187 wizyt
pytanie zadane 21 marca 2018 w JavaScript przez kubekszklany Gaduła (3,190 p.)
0 głosów
1 odpowiedź 261 wizyt
0 głosów
1 odpowiedź 444 wizyt
pytanie zadane 14 stycznia 2022 w JavaScript przez Oskar Szkurłat Bywalec (2,780 p.)

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...