为什么我在javascript中读取YAML值时没有定义它,但它在其他任何地方都有?

为什么我在javascript中读取YAML值时没有定义它,但它在其他任何地方都有?,javascript,vue.js,yaml,Javascript,Vue.js,Yaml,我正在尝试从本地目录读取YAML文件。我可以读取它,但文件中的数据没有定义 错误如下所示: <template> <div> {{this.dataNotWorkingNow}} </div> </template> <script> import yaml from "js-yaml"; import fs from "fs"; import config from "./config.yml"; export de

我正在尝试从本地目录读取YAML文件。我可以读取它,但文件中的数据没有定义

错误如下所示:

<template>
  <div>
    {{this.dataNotWorkingNow}}
  </div>
</template>

<script>
import yaml from "js-yaml";
import fs from "fs";
import config from "./config.yml";
export default {
  data() {
    return {
      dataNotWorkingNow: []
    };
  },
  created() {
    fs.readFile(config, "utf8", function(e, data) {
      var file;
      if (e) {
        console.log("config.yml not found.");
      } else {
        file = yaml.safeLoad(data, "utf8");
        if (file.options["displayGreating"]) {
          console.log("hello " + file.userName);
        }
        if (file.options["displayTime"]) {
          console.log("the time is: " + new Date());
        }
      }
    });
  }
};
</script>

文件中的数据结构如下:

userName: myusername

options :
   displayTime : true
   displayGreating : true

fruit: 
 -apple
 -orange
我的代码说没有定义“myusername”。这是什么意思

我正在加载YAML,如下所示:

<template>
  <div>
    {{this.dataNotWorkingNow}}
  </div>
</template>

<script>
import yaml from "js-yaml";
import fs from "fs";
import config from "./config.yml";
export default {
  data() {
    return {
      dataNotWorkingNow: []
    };
  },
  created() {
    fs.readFile(config, "utf8", function(e, data) {
      var file;
      if (e) {
        console.log("config.yml not found.");
      } else {
        file = yaml.safeLoad(data, "utf8");
        if (file.options["displayGreating"]) {
          console.log("hello " + file.userName);
        }
        if (file.options["displayTime"]) {
          console.log("the time is: " + new Date());
        }
      }
    });
  }
};
</script>

{{this.dataNotWorkingNow}
从“js yaml”导入yaml;
从“fs”导入fs;
从“/config.yml”导入配置;
导出默认值{
数据(){
返回{
dataNotWorkingNow:[]
};
},
创建(){
读取文件(配置,“utf8”,函数(e,数据){
var文件;
如果(e){
log(“未找到config.yml”);
}否则{
文件=yaml.safeLoad(数据,“utf8”);
if(file.options[“displayGreating”]){
log(“hello”+file.userName);
}
if(file.options[“displayTime”]){
log(“时间为:+new Date());
}
}
});
}
};

如何从本地文件加载数据?

发生这种情况是因为

import config from "./config.yml";

该语句试图将YAML文件解析为JavaScript源代码。删除该行并改为执行
fs.readFile(“./config.yml””,…

如果将
myusername
放在双引号中会怎么样?@Honza然后我得到另一个错误,上面写着“创建的钩子中的错误:”TypeError:fs\uu WEBPACK\u IMPORTED\u MODULE\u 2\uuu default.a.readFile不是函数“然后,如果您发布如何在webpack配置中解析*.yml文件并在那里搜索,这将非常有用。您导入的yml看起来像是解析为js文件。可能需要使用一些yml加载程序与webpack一起使用,以便能够使用
import…from
语句直接导入yml文件