找不到 'ramda' 的类型定义文件
Cannot find type definition file for 'ramda'
我有一个项目 Ionic
2 & Angular
2.
我在我的代码中使用 RamdaJS,这与这些命令完美配合:
ionic serve
ionic cordova build android
ionic cordova run android
但是当我尝试执行此命令时:ionic cordova build android --prod --release
,我收到有关 Ramda 和 Type 的错误。
看到我的一部分 package.json
:
"dependencies": {
"@angular/common": "2.4.8",
"@angular/compiler": "2.4.8",
"@angular/compiler-cli": "2.4.8",
"@angular/core": "2.4.8",
"@angular/flex-layout": "^2.0.0-rc.1",
"@angular/forms": "2.4.8",
"@angular/http": "2.4.8",
"@angular/material": "2.0.0-beta.2",
"@angular/platform-browser": "2.4.8",
"@angular/platform-browser-dynamic": "2.4.8",
"@angular/platform-server": "2.4.8",
"@angular/router": "3.4.8",
"@ionic-native/camera": "3.7.0",
"@ionic-native/core": "3.7.0",
"@ionic-native/network": "3.7.0",
"@ionic-native/splash-screen": "3.7.0",
"@ionic-native/status-bar": "3.7.0",
"@ionic/storage": "2.0.0",
"cordova-plugin-device": "^2.0.1",
"cordova-plugin-ionic-keyboard": "^2.0.5",
"cordova-plugin-ionic-webview": "^1.1.16",
"cordova-plugin-splashscreen": "^5.0.2",
"cordova-plugin-whitelist": "^1.3.3",
"hammerjs": "2.0.8",
"ionic-angular": "2.3.0",
"ionicons": "3.0.0",
"material-design-icons": "3.0.1",
"moment": "2.18.1",
"moment-duration-format": "1.3.0",
"ng2-translate": "5.0.0",
"ng2-webstorage": "1.5.1",
"ngx-pipes": "1.5.7",
"ramda": "0.23.0",
"rxjs": "5.0.1",
"sw-toolbox": "3.4.0",
"zone.js": "0.7.2",
"cordova-android": "~7.0.0"
},
"devDependencies": {
"@ionic/app-scripts": "1.2.2",
"@types/ramda": "github:types/npm-ramda",
"@types/moment-duration-format": "1.3.1",
"typescript": "2.2.1"
}
tsconfig.json
{
"compilerOptions": {
"baseUrl": "./",
"paths" : {
"ramda": [
"location-of-types/npm-ramda-package/index"
]
},
"allowSyntheticDefaultImports": true,
"declaration": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": [
"dom",
"es2015"
],
"module": "es2015",
"moduleResolution": "node",
"sourceMap": true,
"target": "es5"
},
"include": [
"src/**/*.ts"
],
"exclude": [
"node_modules"
],
"compileOnSave": false,
"atom": {
"rewriteTsconfig": false
}
}
尝试构建生产环境时出错:
[12:26:31] typescript error
Cannot find type definition file for 'ramda'.
Error: Failed to transpile TypeScript
按照此处的安装说明进行操作:https://github.com/types/npm-ramda
# using npm
npm install --save-dev types/npm-ramda#dist
If not using npm/yarn, you may need to add these typings to paths in
tsconfig.json:
For the full package:
{
"compilerOptions": {
"baseUrl": "./",
"paths" : {
"ramda": [
"location-of-types/npm-ramda-package/index"
]
}
}
}
按照 DefinitlyTyped 的建议通过 @types/packageName
安装类型。
对于 NPM 做:
npm install @types/ramda --save-dev
对于 YARN 使用:
yarn add @types/ramda --dev
Typescript 默认在您的 node_modules
中查找名为 @types
的目录以查找类型定义:
By default all visible “@types” packages are included in your compilation. Packages in node_modules/@types of any enclosing folder are considered visible; specifically, that means packages within ./node_modules/@types/, ../node_modules/@types/, ../../node_modules/@types/, and so on.
If typeRoots is specified, only packages under typeRoots will be included.
我有一个项目 Ionic
2 & Angular
2.
我在我的代码中使用 RamdaJS,这与这些命令完美配合:
ionic serve
ionic cordova build android
ionic cordova run android
但是当我尝试执行此命令时:ionic cordova build android --prod --release
,我收到有关 Ramda 和 Type 的错误。
看到我的一部分 package.json
:
"dependencies": {
"@angular/common": "2.4.8",
"@angular/compiler": "2.4.8",
"@angular/compiler-cli": "2.4.8",
"@angular/core": "2.4.8",
"@angular/flex-layout": "^2.0.0-rc.1",
"@angular/forms": "2.4.8",
"@angular/http": "2.4.8",
"@angular/material": "2.0.0-beta.2",
"@angular/platform-browser": "2.4.8",
"@angular/platform-browser-dynamic": "2.4.8",
"@angular/platform-server": "2.4.8",
"@angular/router": "3.4.8",
"@ionic-native/camera": "3.7.0",
"@ionic-native/core": "3.7.0",
"@ionic-native/network": "3.7.0",
"@ionic-native/splash-screen": "3.7.0",
"@ionic-native/status-bar": "3.7.0",
"@ionic/storage": "2.0.0",
"cordova-plugin-device": "^2.0.1",
"cordova-plugin-ionic-keyboard": "^2.0.5",
"cordova-plugin-ionic-webview": "^1.1.16",
"cordova-plugin-splashscreen": "^5.0.2",
"cordova-plugin-whitelist": "^1.3.3",
"hammerjs": "2.0.8",
"ionic-angular": "2.3.0",
"ionicons": "3.0.0",
"material-design-icons": "3.0.1",
"moment": "2.18.1",
"moment-duration-format": "1.3.0",
"ng2-translate": "5.0.0",
"ng2-webstorage": "1.5.1",
"ngx-pipes": "1.5.7",
"ramda": "0.23.0",
"rxjs": "5.0.1",
"sw-toolbox": "3.4.0",
"zone.js": "0.7.2",
"cordova-android": "~7.0.0"
},
"devDependencies": {
"@ionic/app-scripts": "1.2.2",
"@types/ramda": "github:types/npm-ramda",
"@types/moment-duration-format": "1.3.1",
"typescript": "2.2.1"
}
tsconfig.json
{
"compilerOptions": {
"baseUrl": "./",
"paths" : {
"ramda": [
"location-of-types/npm-ramda-package/index"
]
},
"allowSyntheticDefaultImports": true,
"declaration": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": [
"dom",
"es2015"
],
"module": "es2015",
"moduleResolution": "node",
"sourceMap": true,
"target": "es5"
},
"include": [
"src/**/*.ts"
],
"exclude": [
"node_modules"
],
"compileOnSave": false,
"atom": {
"rewriteTsconfig": false
}
}
尝试构建生产环境时出错:
[12:26:31] typescript error
Cannot find type definition file for 'ramda'.
Error: Failed to transpile TypeScript
按照此处的安装说明进行操作:https://github.com/types/npm-ramda
# using npm npm install --save-dev types/npm-ramda#dist
If not using npm/yarn, you may need to add these typings to paths in tsconfig.json:
For the full package:
{ "compilerOptions": { "baseUrl": "./", "paths" : { "ramda": [ "location-of-types/npm-ramda-package/index" ] } } }
按照 DefinitlyTyped 的建议通过 @types/packageName
安装类型。
对于 NPM 做:
npm install @types/ramda --save-dev
对于 YARN 使用:
yarn add @types/ramda --dev
Typescript 默认在您的 node_modules
中查找名为 @types
的目录以查找类型定义:
By default all visible “@types” packages are included in your compilation. Packages in node_modules/@types of any enclosing folder are considered visible; specifically, that means packages within ./node_modules/@types/, ../node_modules/@types/, ../../node_modules/@types/, and so on.
If typeRoots is specified, only packages under typeRoots will be included.