2016-11-25 8 views
3

この問題は私を殺しています。助けてください。 私は、次いるファイル構造:typescript付きの分度器は、正常に解決された後にモジュール '分度器'を見つけることができません

node_modules 
    protractor 
    typescript 
package.json 
register-popup.ts 

package.json

{ 
    "name": "typescriptProba", 
    "version": "1.0.0", 
    "description": "", 
    "main": "index.js", 
    "scripts": { 
     "test": "echo \"Error: no test specified\" && exit 1" 
    }, 
    "keywords": [], 
    "author": "", 
    "license": "ISC", 
    "dependencies": { 
     "protractor": "^4.0.11", 
     "typescript": "^2.0.10" 
    } 
} 

レジスタ-popup.tsのコンテンツのコンテンツ:JSファイルにTSファイルをコンパイルするための

import { ElementFinder, element, by } from "protractor"; 

export class RegisterPopup { 
    public registerWithFacebookButton: ElementFinder = element(by.css('li.facebook a')); 
    public registerWithGoogleButton: ElementFinder = element(by.css('li.google a')); 
    public registerWithEmailButton: ElementFinder = element(by.css('li.email a')); 
    public registerWithMobileButton: ElementFinder = element(by.css('li.natel a')); 

    constructor() {} 

    openPopup() { 
     element(by.css('.account.user')).click(); 
     element(by.id('openRegister')).click(); 
    } 

    openRegisterByEmailPopup() { 
     this.registerWithEmailButton.click(); 
    } 

    openRegisterByPhonePopup() { 
     this.registerWithMobileButton.click(); 
    } 
} 

私は次のコマンドを使用しています:

./node_modules/typescript/bin/tsc "./register-popup.ts" --module commonjs --noResolve --traceResolution 

コマンドを実行した後、私はエラーを次ています

error TS2307: Cannot find module 'protractor'. 

しかし、私のモジュールトレースの解像度は、このようなものです:

======== Resolving module 'protractor' from '/Users/predraglazarevic/www/typescriptProba/register-popup.ts'. ======== 
Module resolution kind is not specified, using 'NodeJs'. 
Loading module 'protractor' from 'node_modules' folder. 
File '/Users/predraglazarevic/www/typescriptProba/node_modules/protractor.ts' does not exist. 
File '/Users/predraglazarevic/www/typescriptProba/node_modules/protractor.tsx' does not exist. 
File '/Users/predraglazarevic/www/typescriptProba/node_modules/protractor.d.ts' does not exist. 
Found 'package.json' at '/Users/predraglazarevic/www/typescriptProba/node_modules/protractor/package.json'. 
'package.json' has 'typings' field 'built/index.d.ts' that references '/Users/predraglazarevic/www/typescriptProba/node_modules/protractor/built/index.d.ts'. 
File '/Users/predraglazarevic/www/typescriptProba/node_modules/protractor/built/index.d.ts' exist - use it as a name resolution result. 
Resolving real path for '/Users/predraglazarevic/www/typescriptProba/node_modules/protractor/built/index.d.ts', result '/Users/predraglazarevic/www/typescriptProba/node_modules/protractor/built/index.d.ts' 
======== Module name 'protractor' was successfully resolved to '/Users/predraglazarevic/www/typescriptProba/node_modules/protractor/built/index.d.ts'. ======== 

だから私は

Module name 'protractor' was successfully resolved

を持っているが、それでもエラー

を持っています

error TS2307: Cannot find module 'protractor'.

なぜですか?

ANSWER

私は--noResolveフラグを省略すると、それが働いています。あなたが任意の追加のDefinitelyTypedモジュールを持っているので、もしコマンドは、あなたのtsconfig.jsonをチェックする必要が

./node_modules/typescript/bin/tsc "./register-popup.ts" --module commonjs 
+0

あなたの 'tsconfig'ファイルも共有できますか? –

+0

tsconfigファイルがありません – kukipei

+0

tsconfigファイルなしでどのようにコンパイルしていますか? –

答えて

1

まず、あなたがtypeRoots

{ 
    "compileOnSave": false, 
    "compilerOptions": { 
    "declaration": false, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "lib": [ 
     "es2016" 
    ], 
    "module": "commonjs", 
    "moduleResolution": "node", 
    "outDir": "path/to/transpiled/files", 
    "sourceMap": true, 
    "target": "es6", 
    "typeRoots": [ 
     "node_modules/@types" 
    ] 
    } 
} 

を参照してくださいする必要があり、彼らは中typeRootsディレクトリによってピックアップされますローカルパス:node_modules/@types

+0

上記の答えを更新する必要があります。 '@ types/protractor'は推奨されません。 – cnishina

関連する問題