Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Typescript无法写入文件将覆盖输入文件。编译Ionic 3应用程序时出错_Javascript_Jquery_Angular_Typescript_Ionic Framework - Fatal编程技术网

Javascript Typescript无法写入文件将覆盖输入文件。编译Ionic 3应用程序时出错

Javascript Typescript无法写入文件将覆盖输入文件。编译Ionic 3应用程序时出错,javascript,jquery,angular,typescript,ionic-framework,Javascript,Jquery,Angular,Typescript,Ionic Framework,我一直在尝试在ionic 3项目中使用给定的.jsAPI。在一些帮助下,我能够将api引入到项目中,没有任何错误,现在能够使用它所具有的功能。然而,API使用了JQuery 2.1.0,现在在编译项目时,我遇到了以下错误:无法写入文件“…/src/assets/JQuery-2.1.0.min.js”,因为它会覆盖输入文件。我不知道如何解决这个问题。。我尝试将jquery文件作为模块导入,但这也给了我一些错误。api.ts和jquery-2.1.0.min.js都位于src/assets/文件夹

我一直在尝试在ionic 3项目中使用给定的.jsAPI。在一些帮助下,我能够将api引入到项目中,没有任何错误,现在能够使用它所具有的功能。然而,API使用了
JQuery 2.1.0
,现在在编译项目时,我遇到了以下错误:
无法写入文件“…/src/assets/JQuery-2.1.0.min.js”,因为它会覆盖输入文件。
我不知道如何解决这个问题。。我尝试将jquery文件作为模块导入,但这也给了我一些错误。api.ts和jquery-2.1.0.min.js都位于
src/assets/
文件夹中,然后将api导入我的
src/pages/home/home.ts
文件中

这是api.ts:

import * as $ from './jquery-2.1.0.min.js';

export class API {
  ServerUrl = '';

  Type = {
    Day: 'day',
    Night: 'night'
  };

  Days = {
    Monday: 'Monday',
    Tuesday: 'Tuesday',
    Wednesday: 'Wednesday',
    Thursday: 'Thursday',
    Friday: 'Friday',
    Saturday: 'Saturday',
    Sunday: 'Sunday'
  };

  MinTemperature = parseFloat('5.0');
  MaxTemperature = parseFloat('30.0');
  MaxSwitches = 5;

  Time;
  CurrentDay;
  DayTemperature;
  NightTemperature;
  CurrentTemperature;
  TargetTemperature;
  ProgramState;

  Program:any = {};

  constructor() {
    this.Program[this.Days.Monday]    = [];
    this.Program[this.Days.Tuesday]   = [];
    this.Program[this.Days.Wednesday] = [];
    this.Program[this.Days.Thursday]  = [];
    this.Program[this.Days.Friday]    = [];
    this.Program[this.Days.Saturday]  = [];
    this.Program[this.Days.Sunday]    = [];
  }

  /* Retrieve day program
   */
  getProgram(day) {
    return this.Program[day];
  }

  /* Sorts the heating periods (the periods when the heating is on) and merges overlapping ones
   */
  sortMergeProgram(day) {
    let program = this.getProgram(day);
    program.sort(function(a, b) {
      return this.parseTime(a[0]) - this.parseTime(b[0])
    });
    for (let i = 0; i < program.length - 1; i++) {
      if (this.parseTime(program[i][1]) >= this.parseTime(program[i + 1][0])) {
        let start = (program[i][0]);
        let end = (this.parseTime(program[i][1]) > this.parseTime(program[i + 1][1])) ? program[i][1] : program[i + 1][1];
        program.splice(i, 2);
        program.push([start, end]);
        this.sortMergeProgram(day);
        break;
      }
    }
  }

  /* Retrieves all data from the server except for weekProgram
   */
  get(attribute_name, xml_tag) {
    return this.requestData(
      "/" + attribute_name,
      function(data) {
        return $(data).find(xml_tag).text();
      }
    );
  }

  /* Retrieves the week program
   */
  getWeekProgram() {
    return this.requestData(
      '/weekProgram',
      function(data) {
        $(data).find('day').each(function() {
          let day = (<any>$(this)).attr('name');
          this.Program[day] = [];
          $(this).find('switch').each(function() {
            if ((<any>$(this)).attr('state') == 'on') {
              if ((<any>$(this)).attr('type') == this.Type.Day) {
                this.getProgram(day).push([$(this).text(), '00:00']);
              } else {
                this.getProgram(day)[this.getProgram(day).length - 1][1] = $(this).text();
              }
            }
          })
        });
        return this.Program;
      }
    );
  }

  /* Uploads all data to the server except for currentTemperature and weekProgram
   */
  put(attribute_name, xml_tag, value) {
    this.uploadData("/" + attribute_name, "<" + xml_tag + ">" + value + "</" + xml_tag + ">");
  }

  requestData(address, func) {
    let result;
    (<any>$).ajax({
      type: "get",
      url: this.ServerUrl + address,
      dataType: "xml",
      async: false,
      success: function(data) {
        result = func(data);
      }
    });
    return result;
  }

  /* Uploads the week program
   */
  setWeekProgram() {
    let doc = document.implementation.createDocument(null, null, null);
    let program = doc.createElement('week_program');
    program.setAttribute('state', this.ProgramState ? 'on' : 'off');
    for (let key in this.Program) {
      let day = doc.createElement('day');
      day.setAttribute('name', key);

      let daySwitches = [];
      let nightSwitches = [];

      let i, text, sw;
      let periods = this.getProgram(key);
      for (i = 0; i < periods.length; i++) {
        daySwitches.push(periods[i][0]);
        nightSwitches.push(periods[i][1]);
      }

      for (i = 0; i < this.MaxSwitches; i++) {
        sw = doc.createElement('switch');
        sw.setAttribute('type', this.Type.Day);

        if (i < daySwitches.length) {
          sw.setAttribute('state', 'on');
          text = doc.createTextNode(daySwitches[i]);
        } else {
          sw.setAttribute('state', 'off');
          text = doc.createTextNode('00:00');
        }
        sw.appendChild(text);
        day.appendChild(sw);
      }

      for (i = 0; i < this.MaxSwitches; i++) {
        sw = doc.createElement('switch');
        sw.setAttribute('type', this.Type.Night);

        if (i < nightSwitches.length) {
          sw.setAttribute('state', 'on');
          text = doc.createTextNode(nightSwitches[i]);
        } else {
          sw.setAttribute('state', 'off');
          text = doc.createTextNode('00:00');
        }
        sw.appendChild(text);
        day.appendChild(sw);
      }
      program.appendChild(day);
    }
    doc.appendChild(program);
    this.uploadData('/weekProgram', (new XMLSerializer()).serializeToString(doc));
  }

  /* Creates the default week program
   */
  setDefault() {
    let doc = document.implementation.createDocument(null, null, null);
    let program = doc.createElement('week_program');
    program.setAttribute('state', this.ProgramState ? 'on' : 'off');
    for (let key in this.Program) {
      let day = doc.createElement('day');
      day.setAttribute('name', key);

      let daySwitches = [];
      let nightSwitches = [];

      let i, text, sw;

      for (i = 0; i < this.MaxSwitches; i++) {
        sw = doc.createElement('switch');
        sw.setAttribute('type', this.Type.Night);
        sw.setAttribute('state', 'off');
        text = doc.createTextNode('00:00');
        sw.appendChild(text);
        day.appendChild(sw);
      }

      for (i = 0; i < this.MaxSwitches; i++) {
        sw = doc.createElement('switch');
        sw.setAttribute('type', this.Type.Day);
        sw.setAttribute('state', 'off');
        text = doc.createTextNode('00:00');
        sw.appendChild(text);
        day.appendChild(sw);
      }

      program.appendChild(day);
    }
    doc.appendChild(program);
    this.uploadData('/weekProgram', (new XMLSerializer()).serializeToString(doc));
  }

  uploadData(address, xml) {
    (<any>$).ajax({
      type: "put",
      url: this.ServerUrl + address,
      contentType: 'application/xml',
      data: xml,
      async: false
    });
  }

  parseTime(t) {
    return parseFloat(t.substr(0, 2)) + parseFloat(t.substr(3, 2)) / 60;
  }

  /* Adds a heating period for a specific day
   */
  addPeriod(day, start, end) {
    let program = this.getWeekProgram()[day];
    program.push([start, end]);
    this.sortMergeProgram(day);
    this.setWeekProgram();
  }

  /* Removes a heating period from a specific day.
     idx is the idex of the period with values from 0 to 4
  */
  removePeriod(day, idx) {
    let program = this.getWeekProgram()[day];
    let start = program[idx][0];
    let end = program[idx][1];
    program.splice(idx, 1);
    this.setWeekProgram();
  }

  /* Checks whether the temperature is within the range [5.0,30.0]
   */
  inTemperatureBoundaries(temp) {
    temp = parseFloat(temp);
    return (temp >= this.MinTemperature && temp <= this.MaxTemperature);
  }
}
import*作为$from./jquery-2.1.0.min.js';
导出类API{
ServerUrl='';
类型={
Day:“Day”,
夜:“夜”
};
天数={
星期一:“星期一”,
星期二:“星期二”,
星期三:“星期三”,
星期四:“星期四”,
星期五:“星期五”,
星期六:“星期六”,
星期日:“星期日”
};
MintTemperature=parseFloat('5.0');
MaxTemperature=parseFloat('30.0');
最大开关数=5;
时间
今日;
日温;
夜间温度;
电流温度;
目标温度;
编程状态;
程序:any={};
构造函数(){
this.Program[本.天.星期一]=[];
this.Program[本.天.周二]=[];
this.Program[本.天.周三]=[];
this.Program[本.天.周四]=[];
this.Program[本.天.周五]=[];
this.Program[本.天.周六]=[];
this.Program[this.Days.Sunday]=[];
}
/*检索日计划
*/
getProgram(天){
返回此。程序[日期];
}
/*对加热时段(打开加热时的时段)进行排序并合并重叠的时段
*/
sortMergeProgram(天){
让program=this.getProgram(天);
程序排序(函数(a,b){
返回this.parseTime(a[0])-this.parseTime(b[0])
});
for(设i=0;i=this.parseTime(程序[i+1][0])){
let start=(程序[i][0]);
设end=(this.parseTime(program[i][1])>this.parseTime(program[i+1][1])?program[i][1]:program[i+1][1];
程序拼接(i,2);
program.push([开始,结束]);
这是一个排序程序(天);
打破
}
}
}
/*从服务器检索除weekProgram之外的所有数据
*/
获取(属性名称、xml标记){
返回此.requestData(
“/”+属性名称,
功能(数据){
返回$(数据).find(xml_标记).text();
}
);
}
/*检索周计划
*/
getWeekProgram(){
返回此.requestData(
“/weekProgram”,
功能(数据){
$(数据)。查找('day')。每个(函数(){
let day=(提供了这个链接(因为文件太大,所以它非常大)

我已经编辑了我的
tsconfig.json
,在那里也有
“allowJs”=true,

有没有人知道我该怎么解决这个问题


提前感谢!!

类型脚本声明(.d.ts)文件似乎有问题,使编译器感到困惑

首先运行此命令删除tsc生成的所有旧声明文件:

find . -type f -name "*.d.ts" -delete
然后将
tsconfig.json
更改为

“编译器选项”:{
“声明”:虚假,
...
}

我没有使用jquery.js文件,而是通过导入jquery解决了这个问题。遵循本教程:而是使用npm的jquery-2.1.0版本!在我刚刚以以下方式导入jquery之后:
import*作为$from'jquery';
一切正常!!

我在windows上,所以该命令不起作用,手动查找所有*.d.ts文件并将其删除会导致
找不到模块“/.build”
error.don't use it.说真的,如果它没有none jquery导入,那就找些别的东西,这对于一个移动应用来说是一个沉重的额外代码。这是一个学校作业,我必须使用这个API。如果这是一个真正的应用,我会公开,我不会使用它或自己重写整个API,但整个作业都是集中的关于用户界面。功能只有在那里,教授们才能测试它。由于这只是关于界面,我觉得我在API上花费的时间已经远远超过了必要的时间。因此,如果这一点现在起作用,我对它非常满意。