Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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
带有Typescript的headloom.js可以';我找不到模块_Typescript_Browserify_Headroom.js - Fatal编程技术网

带有Typescript的headloom.js可以';我找不到模块

带有Typescript的headloom.js可以';我找不到模块,typescript,browserify,headroom.js,Typescript,Browserify,Headroom.js,有人在TypeScriptLand工作过吗?在谷歌上四处搜索,结果似乎不是这样 我想把这个库合并到我的Browserify项目中,但没有任何运气 我有这个headloom.js的v0.9.3的打字文件 节点模块安装为node\u modules/headloom.js/(是的,它是一个文件夹;我以前从未见过以这种方式命名的节点模块。) 根据package.json,headloom.js的主要条目是node_modules/headloom.js/dist/headloom.js 当我尝试

有人在TypeScriptLand工作过吗?在谷歌上四处搜索,结果似乎不是这样

我想把这个库合并到我的Browserify项目中,但没有任何运气

我有这个headloom.js的v0.9.3的打字文件

  • 节点模块安装为
    node\u modules/headloom.js/
    (是的,它是一个文件夹;我以前从未见过以这种方式命名的节点模块。)
  • 根据package.json,headloom.js的主要条目是
    node_modules/headloom.js/dist/headloom.js
当我尝试将模块导入我的应用程序时,找不到它

{ [TypeScript error: resources/assets/typescript/app.ts(12,24): Error TS2307: Cannot find module 'headroom.js'.]
  message: 'resources/assets/typescript/app.ts(12,24): Error TS2307: Cannot find module \'headroom.js\'.',
  fileName: 'resources/assets/typescript/app.ts',
  line: 12,
  column: 24,
  name: 'TypeScript error' }
我尝试过所有这些排列:

import {Headroom} from "headroom.js";    //nope
import {Headroom} from "headroom\.js";   //nope
import {Headroom} from "Headroom\.js";   //nope
import {Headroom} from "headroomjs";     //nope
import {Headroom} from "headroomjs";     //nope
import {Headroom} from "headroom";       //nope
import {Headroom} from "Headroom";       //nope
import * as headroom from "headroom.js"; // nope
输入文件肯定是正确导入的

IDE表示它可以找到目录:

我做错了什么

编辑13-08-2015

一,。 app.ts从
typings
目录中提取打字,如下所示:

/// <reference path="../../../typings/index.d.ts" />
//
  • index.d.ts
    包含这些类型
    
    /// 
    /// 
    ///……等等。。。
    /// 
    
  • 它肯定在那里


    净空不包括任何打字。这就是TypeScript找不到“目录”的原因。你可以做两件事:

    (1) 为净空添加您自己的
    .d.ts
    文件,并确保它在运行时可用

    (2) 使用
    const headloom=require('headloom.js')导入它。根据browserify配置,在构建项目时,它应该包括净空。请注意,您将不会有任何净空打字


    我们将(2)与webpack一起使用,效果很好。当您编写
    require('foo')
    webpack将尝试查找名为“foo”的npm包,并将其添加到您的项目中。TypeScript可以使用require,因为它是在包含的
    .d.ts
    文件之一(例如node.js)中定义的。当然,你会错过TypeScript的自动完成功能等。

    净空不包括任何打字。这就是TypeScript找不到“目录”的原因。你可以做两件事:

    (1) 为净空添加您自己的
    .d.ts
    文件,并确保它在运行时可用

    (2) 使用
    const headloom=require('headloom.js')导入它。根据browserify配置,在构建项目时,它应该包括净空。请注意,您将不会有任何净空打字


    我们将(2)与webpack一起使用,效果很好。当您编写
    require('foo')
    webpack将尝试查找名为“foo”的npm包,并将其添加到您的项目中。TypeScript可以使用require,因为它是在包含的
    .d.ts
    文件之一(例如node.js)中定义的。但是当然,您将丢失TypeScript的自动完成功能等。

    搜索
    headloom.js的打字:

    typings search headroom
    
    查找需要使用此命令安装的一组声明:

    typings install dt~headroom --global
    
    安装坚持使用
    --global
    选项,这是第一个提示。安装的打字机是全球的;它们不是模块的类型(在
    .d.ts
    中没有定义模块)。因此,TypeScript不会将它们与导入的或必需的模块关联起来

    要使用已安装的打字,您必须使用
    require
    导入模块,然后需要设置一个与打字中声明的类匹配的全局(您提到您正在使用Browserify,因此您应该能够使用
    global
    窗口
    也可以工作):


    看看dist/headloom.js,很明显它可以通过AMD、CommonJS或普通JavaScript使用。为了反映这一点,我想
    Headroom.js
    的打字声明的作者已经将其全球化了。

    搜索
    Headroom.js的打字:

    typings search headroom
    
    查找需要使用此命令安装的一组声明:

    typings install dt~headroom --global
    
    安装坚持使用
    --global
    选项,这是第一个提示。安装的打字机是全球的;它们不是模块的类型(在
    .d.ts
    中没有定义模块)。因此,TypeScript不会将它们与导入的或必需的模块关联起来

    要使用已安装的打字,您必须使用
    require
    导入模块,然后需要设置一个与打字中声明的类匹配的全局(您提到您正在使用Browserify,因此您应该能够使用
    global
    窗口
    也可以工作):


    看看dist/headloom.js,很明显它可以通过AMD、CommonJS或普通JavaScript使用。为了反映这一点,我想
    headloom.js
    的打字声明的作者已经让它们全球化了。

    我做了一些类似于@Sebastian answer的东西来让它工作。在
    src/
    文件夹中,创建了一个名为
    headloom.js.d.ts
    的新文件,其中只包含:

    声明模块'headloom.js';
    
    这就解决了问题。在我的功能组件中,我能够做到:

    从“headloom.js”导入净空;
    导出常量导航:React.FC=()=>{
    React.useffect(()=>{
    let headloom=新的净空(document.getElementById(“navbar main”);
    headloom.init();
    },[类别];
    回报率(…);
    }
    
    我做了一些类似于@Sebastian的回答来让它工作。在
    src/
    文件夹中,创建了一个名为
    headloom.js.d.ts
    的新文件,其中只包含:

    声明模块'headloom.js';
    
    这就解决了问题。在我的功能组件中,我能够做到:

    从“headloom.js”导入净空;
    导出常量导航:React.FC=()=>{
    React.useffect(()=>{
    let headloom=新的净空(document.getElementById(“navbar main”);
    headloom.init();
    },[类别];