2017-06-27 7 views
1

Angular 2アプリケーションでCodeMirror lintingを動作させようとしています。 CodeMirrorエディタは、(行番号、構文ハイライト、テーマなど)壮大に動作していますが、何らかの理由で動作するようになっていません。私はCodeMirror mode: 'application/json'を使用しているので、javascriptリンターが必要な理由です。ここでCodeMirror lintingとJSHINTをAngular 2アプリケーションで動作させることはできません

は私が持っているものです。

app.component.html

<codemirror class="action-type-details-code-mirror" [(ngModel)]="code" [config]="config" name="codeEdit"></codemirror> 

app.component.ts

import { Component } from '@angular/core' 
import { CodemirrorComponent } from 'ng2-codemirror'; 
import 'codemirror/mode/javascript/javascript'; 
import 'codemirror/addon/lint/lint'; 
import 'codemirror/addon/lint/javascript-lint'; 
import { JSHINT } from 'jshint'; 

@Component({ 
    selector: 'my-app', 
    templateUrl: './app.component.html', 
    styleUrls: ['./styles.less'] 
}) 

export class AppComponent { 

code = `<p>My HTML</p>\n<!-- hello -->\n<p>Your HTML</p>` 

constructor() { 
    this.config = { 
    lineNumbers: true, 
    mode: 'application/json', 
    gutters: ['CodeMirror-lint-markers'], 
    theme: 'neo', 
    lint: true 
    }; 
} 

package.json

リンティング機能がCodeMirrorエディタ上では動作しません何らかの理由
"devDependencies": { 
    "@types/codemirror": "0.0.40" 
}, 
"dependencies": { 
    "jshint": "^2.9.5", 
    "codemirror": "^5.26.0", 
    "ng2-codemirror": "^1.1.2", 
} 

app.module.ts

imports: [ 
    /* ... */ 
    CodemirrorModule, 
], 

styles.less

@import "~codemirror/theme/neo.css"; 
@import "~codemirror/lib/codemirror.css"; 
@import "~codemirror/addon/lint/lint.css"; 

。私はアプリケーションをデバッグし、問題をJSHintのロードまで絞り込んだ。問題は、JSHintがウィンドウで利用できないということです。 JSHintをインポートしてウィンドウで利用できるようにする方法はありますか?

ご協力いただければ幸いです。なし -

感謝

答えて

1

のようなtypescriptですリンタが必要です。私はエラーを取得保管:

"Error: window.JSHINT not defined, CodeMirror JavaScript linting cannot run."

この他のstackoverflowの答えは私のためにそれを解決:

Codemirror lint feature not working react-codemirror in React/Redux/Typescript App

あなたの輸入以下(<any>window).JSHINT = JSHINT;はトリックを行う必要があります追加します。

+0

それは実際には、他のstackoverflowの質問に私の答えですが、これは私のために問題を解決したものが正しいです。 – Cristophs0n

+0

私はこれを試しましたが、まだ問題がありました。これを修正するために、 '(ウィンドウ).JSHINT = require( 'jshint').JSHINT;'コンポーザーの内部ではインポートされていません。たぶんこれは他の人にとっても役立つかもしれません。 –

0

JSHintはjavascriptのリンターのですか?角度で

2+あなたは活字を書いているので、私は「JavaScriptの」モードで毛羽立ちとまったく同じ問題を抱えていたTSLint

+0

こんにちは、迅速な対応に感謝します。はい、そうですが、Ng2 CodeMirror EditorのリンティングはJSHintに依存しています...少なくともそれは私の理解です。私はTSLintも使用していますが、自分のコードを埋め込むために使用しましたが、これを私の単純化した例には含めていません。 – Cristophs0n

関連する問題