import - Webpack 找不到带有 Typescript 导入的 keymirror 模块

标签 import module typescript reactjs webpack

我正在使用 Typescript、React 和 Webpack 并且努力导入 keymirror 模块。

我正在使用 latest version of typescript .

package.json

{
  "name": "Fun",
  "version": "1.0.0",
  "description": "Dear Webpack Gods, please help.",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "",
  "dependencies": {
    "eventemitter3": "^1.1.1",
    "flux": "^2.0.3",
    "keymirror": "^0.1.1",
    "react": "^0.13.3",
    "ts-loader": "^0.5.0",
    "typescript": "^1.6.0-dev.20150812"
  },
  "devDependencies": {
    "css-loader": "^0.16.0",
    "style-loader": "^0.12.3"
  }
}

webpack.config.js

module.exports = {
    entry: './App/app.tsx',
    output: {
        filename: 'bundle.js'
    },
    resolve: {
        extensions: ['', '.js', '.tsx', '.ts']
    },
    module: {
        loaders: [
            { test: /\.ts(x?)$/, loader: 'ts-loader' },
            { test: /\.css$/, loader: 'style-loader!css-loader' }
        ]
    }
}

tsconfig.json

{
    "compilerOptions": {
        "target": "ES5",
        "module": "commonjs",
        "jsx": "react",
        "sourceMap": true
    },
    "files": [
        "./typings/tsd.d.ts",
        "./App/app.tsx"
    ]
}

有问题的导入位于 ./User/Constants.ts

import keyMirror = require('keymirror');

export = keyMirror({
    LOGIN_ATTEMPT: null
});

我试过使用 standalone npm module如上所示,以及尝试从 react/lib/keyMirror 请求它。

有什么想法吗?

(编辑:是的,我知道这是一个 12 行的模块,我可以将其复制到我的代码中。)

来自 Basarat 的解决方案(稍作修改)

declare module 'keymirror' {
    function keyMirror(obj: Object);
    export = keyMirror;
}

最佳答案

import keyMirror = require('keymirror');

你需要告诉 typescript 。基本上是这样的:

declare module 'keymirror' {
   var export:any;
   export = export;
}

在名为 global.d.ts 的文件中。

一些文档:http://basarat.gitbooks.io/typescript/content/docs/types/ambient/intro.html

关于import - Webpack 找不到带有 Typescript 导入的 keymirror 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32061027/

相关文章:

java导入 "cannot find symbol"

intellij-idea - intellij IDEA 导入设置

module - 如何从私有(private)模块中的公共(public)函数引用私有(private)类型?

scala - Play 模块测试和 FakeApplication

javascript - 使用 svg 渲染图像标签时,使用 enzyme 进行 react 组件单元测试失败

python - 带有模块导入的命名空间

excel - Laravel 5.7 : SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect date value: '35492' for column 'resident_dob' at row 1

module - OCaml 模块中的抽象类型

arrays - 如何在 typescript 中使用具有对象属性的数组

c# - 如何在 Angular POST 正文中包含 FormData 以将其作为 IFormFile 从 ASP.NET Core 后端检索