Vue.js webpack : how to get the list of files in a

2019-02-25 17:19发布

I am trying to get a list of all files in the 'assets/illustrations' directory of a SPA static app as a JSON object to be re-used in my Vuex store

the assets/illustrations dir structure is :

assets
  illustrations
    ill-1
       prop-1-1.jpg
       prop-1_2.jpg
    ill-2
       prop-2-1.jpg
       prop-2_2.jpg
    ill-3
       prop-3-1.jpg
       prop-3_2.jpg

my target is to have such object as a result :

  { illustrations: [ill-1: [prop-1-1.jpg, prop-1_2.jpg], ill-2: [prop-2-1.jpg, prop-2_2.jpg], ill-3: [prop-3-1.jpg, prop-3_2.jpg]] }

In my App.vue , I fire a method getIllustrations() when the app component is mounted

<script>
export default {
  name: 'app',
  data () {
    return {}
  },
  methods: {
    getIllustrations () {
      const path = require('path')
      const fs = require('fs')
      fs.readdir(path.join(__dirname, 'assets/illustrations'), (err, items) => {
        if (err) { console.log(err) }
        console.log(items)
      })
    }
  },
  mounted () {
    this.getIllustrations()
  }
}
</script>

but I get an error :

 Error in mounted hook: "TypeError: fs.readdir is not a function"

I also tried to run this function in the main.js file ( which is running on the server ..) same error..

WHere am I wrong ? thanks for feedback

1条回答
啃猪蹄的小仙女
2楼-- · 2019-02-25 18:15

fs is server side module. You cannot use fs in the browser, there is no solution to this, it's technically impossible.

https://github.com/vuejs-templates/webpack/issues/262

查看更多
登录 后发表回答