2017-02-28 62 views
3

我正在使用webpack 2,它會告訴我是否有我的打印代碼編譯問題。但是,我還沒有想出一種通過它運行tslint的方法,並使它在webpack在dev-server模式下運行時檢測到的每個更改都運行。如何獲得tslint以查看特定文件夾中的更改?

我試圖得到tslint-loader的工作,但在我的項目中每個文件簡單地告訴我:

/src/main.tsNo已指定有效規則

我使用它因此:

rules: [ 
    { 
    test: /\.ts$/, 
    enforce: 'pre', 
    loader: 'tslint-loader', 
    options: { 
     configuration: { 
     configFile: true // I have also tried setting this to "tslint.json" 
     } 
    } 
    }, 
    ... more loaders... 

仍然沒有快樂。

它有辦法之一:

  1. 有我每次使用通知我皮棉錯誤的的WebPack-DEV-服務器模式tslint-loader我做出改變?
  2. 只需從命令行運行tslint,並不斷「觀察」我項目中的文件?我正在尋找類似tslint ./src/**/*.ts -t --force的東西,但額外的--watch標誌根據tslint docs不存在。

我不想use my editor(如VS Code),因爲我的團隊中並非每個人都使用它。我寧願將解決方案包含在webpack配置文件或package.json腳本中。

謝謝!

回答

6

就可以從命令行運行的腳本而言,您可以嘗試使用npm-watch:https://www.npmjs.com/package/npm-watch

我用它來成功地做你正在談論的東西。下面是我所做的:

安裝NPM-手錶到我的項目:

$ npm install npm-watch --save-dev 

添加以下到我的package.json文件:

"watch": { 
    "lint": "src/main.ts" 
}, 
"scripts": { 
    "lint": "tslint src/**/*.ts -t verbose", 
    "watch": "npm-watch" 
}, 

我想NPM-手錶是一個很好的工具用於爲沒有它的工具提供手錶功能,如tslint。

更新:

另外,如果你不想一個「看」部分添加到您的package.json文件,我其實只是發現了一種新的工具,我想更好稱爲chokidar。它允許您指定要在同一行上運行的所有文件選擇器和命令。

這是我更新的package.json:

"scripts": { 
    "lint:watch": "chokidar webpack.config.* src/**/*.ts buildScripts/**/*.ts -c \"npm run lint\" --initial --verbose" 
}, 

基本上,你給它一個或多個文件選擇器,然後使用「-c」參數來指定要當任何這些文件是執行命令改變。

所以,現在你可以運行命令:

$ npm run lint:watch 

我想與--initial標誌設置運行它,所以它不會等待任何文件,執行命令前發生變化。

+0

這正是我所期待的!謝謝! – tengen

+1

'npm install chokidar chokidar-cli --save-dev' – einSelbst

相關問題