首页 > 解决方案 > 如何测试 webpack 的 require.context 函数

问题描述

在此处输入图像描述

我有一个 vue 轮播组件,我想在静态文件夹中生成 .png 文件的列表。遵循使用 webpack 从目录中动态导入图像并遵循https://webpack.js.org/guides/dependency-management/#context-module-api我的组件如下所示:

 <template>
  <v-carousel>
    <v-carousel-item v-for="(item,i) in items" :key="i" :src="item.src"></v-carousel-item>
  </v-carousel>
</template>


<script>
  // https://stackoverflow.com/questions/2727167/how-do-you-get-a-list-of-the-names-of-all-files-present-in-a-directory-in-node-j
  var cache = {};
  function importAll(r) {
    r.keys().forEach(key => cache[key] = r(key));
  }
  var getImagePaths = importAll(require.context('../static/', false, /\.png$/));
  // At build-time cache will be populated with all required modules. 
  export default {
    data: function() {
      return {
        items: getImagePaths
      };
    }
  };
  //     export default {
  //       data() {
  //         return {
  //           items: [{
  //               src: "/52lv.PNG"
  //             },
  //             {
  //               src: "https://cdn.vuetifyjs.com/images/carousel/sky.jpg"
  //             },
  //             {
  //               src: "https://cdn.vuetifyjs.com/images/carousel/bird.jpg"
  //             },
  //             {
  //               src: "https://cdn.vuetifyjs.com/images/carousel/planet.jpg"
  //             }
  //           ]
  //         };
  //       }
  //     };
  //
</script>

注释掉的部分用于加载轮播图像,因此我需要生成一个看起来像项目的对象。我意识到我还不在那里,但是当我运行开发服务器时,我看到:

[Function: webpackContext] {                                                                                                                          
20:20:42
 keys: [Function: webpackContextKeys],
 resolve: [Function: webpackContextResolve],
 id: './static sync \\.png$'
}

这是什么意思,我如何测试我是否有正确的使用 webpack 的 require.context() 函数的路径?

标签: javascriptvue.jswebpacknuxt.js

解决方案


推荐阅读