如何使用Webpack在Vue.js单文件组件中导入json文件

时间:2019-01-15 16:19:44

标签: javascript vue.js webpack webpack-4

重要

问题出在错误目录中的文件。这可能对您没有帮助...

问题

我正在使用Vue.js单个文件组件,并想在其中一个文件中导入.json文件,但我不知道该怎么做。这是我想做的:

src/App.vue包含:

import data from './tree.json'; // This does not work!

export default {
  /* Component def */
};

Webpack然后给出以下错误:

ERROR in ./src/App.vue?vue&type=script&lang=js& (./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/App.vue?vue&type=script&lang=js&)
Module not found: Error: Can't resolve './tree.json' in 'C:\src'
 @ ./src/App.vue?vue&type=script&lang=js& (./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./src/App.vue?vue&type=script&lang=js&) 8:0-31
 @ ./src/App.vue?vue&type=script&lang=js&
 @ ./src/App.vue
 @ ./src/app.js
 @ multi ./src/app.js

Webpack配置(简化):

module.exports = {
  mode: 'development',

  entry: [
    './src/app.js',
  ],

  module: {
    rules: [
      {
        test: /\.vue$/,
        use: 'vue-loader',
      },
      {
        test: /\.js$/,
        use: 'babel-loader',
      },
    ],
  },
};

我正在使用Vue.js 2.5和Webpack 4.28。

尝试将相同的.json文件导入“原始” .js文件中,但可以

// In src/app.js
import data from './tree.json';

这使我认为vue-loader的某些特定内容与Webpack的.json导入的本机处理不兼容,但是我不知道是什么。

1 个答案:

答案 0 :(得分:2)

该错误表明它正在src /目录中寻找tree.json文件。如果不存在,那是您的问题。

⚠️ Since webpack >= v2.0.0, importing of JSON files will work by default. You might still want to use this if you use a custom file extension. See the v1.0.0 -> v2.0.0 Migration Guide for more information

基本上,您的问题与文件不在正确的目录中有关。