Webpack 找不到带有 Typescript 导入的 keymirror 模块
Webpack cannot find keymirror module with Typescript import
我正在使用 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');
你需要告诉打字稿。基本上是这样的:
declare module 'keymirror' {
var export:any;
export = export;
}
在名为 global.d.ts
的文件中。
一些文档:http://basarat.gitbooks.io/typescript/content/docs/types/ambient/intro.html
我正在使用 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');
你需要告诉打字稿。基本上是这样的:
declare module 'keymirror' {
var export:any;
export = export;
}
在名为 global.d.ts
的文件中。
一些文档:http://basarat.gitbooks.io/typescript/content/docs/types/ambient/intro.html