Rollup-plugin-import-alias ne resout pas les '@'


#1

Bonjour,

je teste le plugin rollup-plugin-import-alias pour me permettre d’écrire des chemins sympas comme :slight_smile:

// src/App.vue
import store from '@/store' 

// src/components/Test.vue
import Nested from '@/components/Nested.vue' 

… et éviter ainsi le ‘imports hell’, plus de chemins en relatif !

seulement, le plugin ne semble pas bien fonctionner, ou alors je l’ai mal positionné au niveau des rollup.plugins (liste)

const plugins = [
 
  //alias({
  //  Vue: 'vue/dist/vue.js',
  // 'VueX': 'vuex/dist/vuex.min.js',
  // 'VueRouter': 'vue-router/dist/vue-router.min.js',
  //}),
 
  replace({
    'process.env.NODE_ENV': JSON.stringify( 'development' )
  }),

  importAlias({
    Paths: {
      compos : '../src/components'
      //'@/store': './src/store',
      //'@/components': './src//components'
    },
    Extensions: ['js', 'vue', 'ts']
  }),

  nodeResolve({
    browser: true,
    jsnext: true
      }),
  
  commonjs(),

  vue({
    compileTemplates: true
  }),

typescript(),
buble({
exclude: ‘node_modules/**’
}),

  serve(serverOptions)
]

que se passe-t’il l et comment arranger cela ?

j’ai eu toutes sortes de messages d’ereur depuis le ‘ENOENT’ à ‘could not resolve external module. use globals…’


#2

et en utilisant Paths: { '@': './src' } ?


#3

bonjour et merci de ta réponse !

j’ai beau tourner le problème dans tous les sens, cela semble résister et cela m’agace …

je me suis demandé si :

  1. ce n’était pas dùu au caractère spécial ‘@’

  2. si cela pouvait être une histoire d’ordre dans la liste rollup.plugins

  3. enfin s’il n’y a pas un problème dans le fait qu’il a a des fichiers …ts transpilés qui deviennnet peut être des .js en cours de route

en tout cas, le code du plugin est simple à comprendre, OK, par contre pas trop moyen de logger en con,sole ce qu’il fait

que faire ? envoyer une issue au créateur du plugin ?


#4

EDIT

ce qui est certain en tout cas, c’est qu’il faut alterer tsconfig.json :

compilerOptions: {
    paths: {
       '@/*' : 'src/***'
    }
}

… et cela fonctionne un peu mieux !

enfin, le paramétrahe de rollup + vue + typescript + import-alias reste délicat à mettere en oeuvre.