打字稿错误找不到名称'require'。离子 3

Posted

技术标签:

【中文标题】打字稿错误找不到名称\'require\'。离子 3【英文标题】:Typescript Error Cannot find name 'require'. IONIC 3打字稿错误找不到名称'require'。离子 3 【发布时间】:2017-11-09 12:37:41 【问题描述】:

打字稿错误 找不到名称“要求”。 C:/Users/me/project/src/pages/home/home.ts // 需要 Twilio 模块并创建一个 REST 客户端

const client = require('twilio')(accountSid, authToken);

离子框架:3.3.0

Ionic 应用脚本:1.3.7

Angular 核心:4.1.2

Angular 编译器 CLI:4.1.2

节点:6.10.3

操作系统平台:Windows 10

导航平台:Win32

用户代理:Mozilla/5.0(Windows NT 10.0;Win64;

ts code

home.ts 中的代码:

顶部

import  Component  from '@angular/core';
import  FirebaseProvider  from './../../providers/firebase/firebase';
import  FirebaseListObservable  from 'angularfire2/database';
import  NavController, NavParams  from 'ionic-angular';
import  BarcodeScanner ,BarcodeScannerOptions  from '@ionic-native/barcode-scanner';
import  Request  from '@angular/http';


@Component(
selector: 'home',
templateUrl: 'home.html',
)

//警报功能

scanAlert()
    this.options = 
      showFlipCameraButton : true,
      formats : "QR_CODE,PDF_417", 
      prompt : "SCAN QR CODE "
    
    this.barcodeScanner.scan(this.options).then((barcodeData) => 
        console.log(barcodeData);
        this.pinText = barcodeData.text;
        const uid = this.pinText;
        this.firebaseProvider.afd.database.ref('pins')
        .orderByChild('QRCODE')
        .equalTo(uid)
        .limitToFirst(1)
        .once('value', snap => 
            let key = Object.keys(snap.val())[0]; // KEY VALUE 
            let user = snap.child(key).val(); // the whole user object
            this.message = 'Parameters to send to twilio' + user.phone + 
                  'regarding'+user.message;

            const accountSid = 'myacctid';
            const authToken = 'mytoken';

            // require the Twilio module and create a REST client
            const client = require('twilio')(accountSid, authToken);

            client.messages
            .create(
                to: '+142mynumber  ',
                from: '+mysms trial#',
                body: 'TEST Alert Message !',
  )
  .then((message) => console.log(message.sid));

我遵循了这些步骤

安装需要--save

npm install @types/node --save-dev

我的问题是没有发送消息。

如果我添加

declare var require: any    

错误消失了,但 twilio 从未收到发送消息的请求。 enter image description here

我找不到任何有关 Ionic3 或 Angular 和 twilio 发送短信的教程 我什至没有传递参数,我复制了

我也试过了

    var twilio = require('twilio');//Make sure to npm install @types/node
    var accountSid = 'myacctid'; // Your Account SID from www.twilio.com/console
    var authToken = 'myauthtoken';   // Your Auth Token from www.twilio.com/console


    var client = new twilio(accountSid, authToken);

    client.messages.create(
        body: 'ALERT! Someone has scanned the Alert Code for ',
        to: '+myphone'  ,// Text this number
        from: '+myTwilioTrial#' // From a valid Twilio number
    )
    .then((message) => console.log(message.sid));

我的 tsconfig.json:


  "compilerOptions": 
    "allowSyntheticDefaultImports": true,
    "declaration": false,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "lib": [
      "dom",
      "es2015"
    ],
    "module": "es2015",
    "moduleResolution": "node",
    "sourceMap": true,
    "target": "es5"
  ,
  "include": [
    "src/**/*.ts"
  ],
  "exclude": [
    "node_modules"
  ],
  "compileOnSave": false,
  "atom": 
    "rewriteTsconfig": false
  

【问题讨论】:

【参考方案1】:

添加:

"types": [
    "node"
],
"typeRoots": [
    "node_modules/@types"
]

tsconfig.json 文件中

【讨论】:

仅供参考,您需要将其放在compilerOptions 下。【参考方案2】:

@types/节点

如果tsconfig.json 中有module: node@types 效果最好。

更多

电位设置https://basarat.gitbooks.io/typescript/content/docs/quick/browser.html

【讨论】:

npm install @types/node --save-dev 我在我的项目中这样做了这里是我的 tsconfig.json

以上是关于打字稿错误找不到名称'require'。离子 3的主要内容,如果未能解决你的问题,请参考以下文章

打字稿错误 - 找不到名称'require'

打字稿错误:找不到名称“cordova”

找不到名称“JSON”打字稿文件

打字稿错误使用googlemaps javascript API时在ionic2中找不到名称'google'

打字稿错误 TS2304:即使使用 esnext 也找不到名称 AsyncIterator

VS Code 中不一致的“找不到名称‘x’”打字稿错误