2016-06-26 22 views
18

Sto lavorando con Webpack e codice Visual Studio e al fine di evitare cose come: aliasFare in modo che il codice VS legga webpack.config e riconosca il percorso con alias?

import { AuthenticationService } from '../../../services/authentication/service'; 

ho creato sulla mia webpack.config modo da poter utilizzare:

import { AuthenticationService } from 'services/authentication/service'; 

Tuttavia in tal modo Visual Code non è in grado di rilevare il mio codice e quindi perdo l'intelisense per le mie classi.

Qualcuno ha una soluzione per questo, c'è un modo per far sì che il codice VS legga il webpack.config e riconosca il percorso con l'alias?

grazie in anticipo

+0

devo VSCode (1.3.1) riconoscere gli alias di WebPack in file js. Gli alias non funzionano in dattiloscritto. Stai parlando di javascript o dattiloscritto? – viskin

+0

sì sto usando dattiloscritto. – Mush

risposta

10

aggiornamento [email protected] ed è possibile mappare gli stessi alias WebPack su tsconfig.json aggiungendo:

"compilerOptions": { 
    "paths": { 
     "app/*": ["./src/app/*"] 
    } 
} 
+2

Ad ogni modo, con jsconfig? L'opzione Percorsi non sembra avere alcun effetto qui – wazzaday

+4

vale la pena notare che l'uso di 'percorsi' richiede anche' baseUrl' ... – Lucas

5

mi sono imbattuto in un problema simile. Poiché stavo usando javascript piuttosto che dattiloscritto, ho dovuto creare un file jsconfig.json e utilizzare l'opzione paths in modo appropriato.

Ipotizzando una struttura di directory simile a questo:

. 
├── src 
│   ├── foo.js 
│   ├── jsconfig.json # your vscode js config 
│   └── my-module  # folder you're aliasing 
│    └── bar.js 
└── webpack.config.js # your webpack config 

questa ferita a lavorare per me:

  1. Impostare webpack risolvere alias:

    var path = require('path'); 
    module.exports = { 
        resolve: { 
        alias: { 
         "my-module": path.resolve(__dirname, './src/my-module') 
        } 
        }, 
        // ... other webpack options 
    }; 
    
  2. Modifica jsconfig.json nella cartella src:

    { 
        "compilerOptions": { 
        "target": "es6", 
        "paths": { 
         "my-module": ["./my-module"] 
        } 
        } 
    } 
    
  3. utilizzare l'alias:

    // in foo.js 
    import Bar from 'my-module/bar'; 
    Bar.quack(); 
    
+0

come importare direttamente il file javascript? – c0ming

+0

questo ha funzionato per me. Ma non su tutti i componenti. Il 60% dei miei file è stato suggerito. – AO17

4

è necessario specificare le paths e baseUrl campi nel file jsconfig.json.

{ 
    "compilerOptions": { 
     "jsx": "react", 
     "target": "ES6", 
     "allowSyntheticDefaultImports": true, 
     "baseUrl": "./", 
     "paths": { 
      "~/*": ["./app/*"] 
     } 
    }, 
    "exclude": [ 
     "node_modules" 
    ] 
} 

Vedi path mapping documentation