Webpack cannot find keymirror module with Typescript import
我正在使用Typescript,React和Webpack并努力导入keymirror模块。
我正在使用最新版本的typescript。
package.json
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | { "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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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
1 2 3 4 5 6 7 8 9 10 11 12 | { "compilerOptions": { "target":"ES5", "module":"commonjs", "jsx":"react", "sourceMap": true }, "files": [ "./typings/tsd.d.ts", "./App/app.tsx" ] } |
有问题的导入位于./User/Constants.ts
1 2 3 4 5 | import keyMirror = require('keymirror'); export = keyMirror({ LOGIN_ATTEMPT: null }); |
我已经尝试使用独立的npm模块,如上所示,并尝试从react / lib / keyMirror要求它。
有什么想法吗?
(编辑:是的,我知道这是一个12行模块,可以将其复制到代码中。)
Basarat的溶液(稍作改动)
1 2 3 4 | declare module 'keymirror' { function keyMirror(obj: Object); export = keyMirror; } |
import keyMirror = require('keymirror');
您需要告诉typescript。基本上像:
1 2 3 4 | declare module 'keymirror' { var export:any; export = export; } |
在名为
某些文档:http://basarat.gitbooks.io/typescript/content/docs/types/ambient/intro.html