4

我做了一个vue组件包my-custom-comp,里面包含动态导入: my-custom-comp.vue

<template>
  <component v-if="id && data" :is="`list-${id}`" :data="data" />
</template>

<script>
export default {
  props: ['id','data'],
  components: {
    'list-1': () => import(/* webpackChunkName: "MyTaglist0" */'./list-1.vue'),
    'list-2': () => import(/* webpackChunkName: "MyTaglist0" */'./list-2.vue'),
    'list-3': () => import(/* webpackChunkName: "MyTaglist1" */'./list-3.vue'),
    'list-4': () => import(/* webpackChunkName: "MyTaglist1" */'./list-4.vue')
  }
}
</script>

lib中的输出文件:

  my-custom-comp.common.js
  my-custom-comp.common.MyTaglist0.js
  my-custom-comp.common.MyTaglist1.js

my-custom-comp在我的应用程序中安装了包,并将包路径添加到 resolve.moduleswebpack.config.js

module.exports = {
  ...
  resolve: {
    modules: [path.join(__dirname, '../node_modules'), path.join(__dirname, '../node_modules/my-custom-comp/lib')],
  }
  ...
}

MyTaglist0.js无法解决:

GET http://localhost:8882/my-custom-comp.common.MyTaglist0.js net::ERR_ABORTED 404 (Not Found)

如何解决从 node_modules 的动态导入?

测试回购: https ://github.com/Miaoxingren/webpack-issue-8934

4

0 回答 0