我正在做一个离子2 / cordova项目,并且正在使用带有打字稿支持的vim。
我的代码中有以下行:
import * as localforage from "localforage";
代码运行没有问题但是typescript编译器给出了以下错误
/path/to/file.ts|2 col 30 error| Cannot find module 'localforage'.
任何提示如何避免该错误?
更新
import {Injectable} from "angular2/core";
import * as localforage from "localforage";
@Injectable()
export class DbService {
constructor() {
//this.run();
}
setKeyVal(k, v){
console.log("db service setKeyVal");
let ran = Math.floor(Math.random() * 1000) + 1;
localforage.setItem(k, device.uuid).then(function () {
return localforage.getItem(k);
}).then(function (value) {
console.log(value);
// we got our value
console.log(navigator.connection.type);
console.log("setItem then");
}).catch(function (err) {
// we got an error
console.log("setItem catch");
});
}
}
更新1 - typings.json
{
"dependencies": {},
"devDependencies": {},
"ambientDependencies": {
"cordova-ionic": "registry:dt/cordova-ionic#0.0.0+20160316155526",
"es6-shim": "github:DefinitelyTyped/DefinitelyTyped/es6-shim/es6-shim.d.ts#4de74cb527395c13ba20b438c3a7a419ad931f1c",
"localforage": "registry:dt/localforage#0.0.0+20160316155526"
}
}
更新2 - tsconfig.json
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"emitDecoratorMetadata": true,
"experimentalDecorators": true
},
"filesGlob": [
"**/*.ts",
"!node_modules/**/*"
],
"exclude": [
"node_modules",
"typings/main",
"typings/main.d.ts"
],
"compileOnSave": false,
"atom": {
"rewriteTsconfig": false
}
}
答案 0 :(得分:3)
答案 1 :(得分:1)
我曾尝试为localforage安装类型,但它对我没用。
typings install localforage --ambient --save
但我能用tds做到这一点。
npm i tsd -g
tsd install localforage
我正在使用Ionic2版Beta.29
更新/typeings/index.d.ts
/// <reference path="localForage/localForage.d.ts" />
添加此行。
最后,导入为
import {localforage} from 'localforage';
现在一切都会好起来的。
答案 2 :(得分:1)
我已经尝试了typings install
和tsd install
命令。但它们都没有奏效。最后,我从离子论坛找到了解决方案:here。
希望如果有人遇到同样的问题,这会有所帮助。
$ npm install localforage --save
$ npm install -g typings
$ typings install dt~localforage --save --global
我没有将导入更改为import {localforage} from 'localforage';
。只需将其保留为
import LocalForage from 'localforage';
答案 3 :(得分:0)
我遇到了运行时错误,找不到模块“ localforage”。我跑了命令
npm uninstall --save @ionic/storage
npm install --save @ionic/storage
对我来说有帮助