2017-02-27 18 views
14

我從頭開始學習webpack。我已經學會了如何鏈接JavaScript文件與要求。我捆綁並縮小了我的js文件,並且正在監聽手錶的變化。我正在設置加載器來將我的sass文件轉換爲css。但是當我嘗試使用jshint-loader設置linting進程時,我遇到了問題。Webpack配置有一個未知的屬性'preLoaders'

module: { 
preLoaders: [ 
     { 
      test: /\.js$/, // include .js files 
      exclude: /node_modules/, // exclude any and all files in the node_modules folder 
      loader: "jshint-loader" 
     } 
], 

loaders: [ 
    { 
    test: /\.scss$/, 
    loader: 'style-loader!css-loader!sass-loader' 
    }, 
    { 
    test: /\.js$/, 
    loader: 'babel-loader', 
    exclude: /node_modules$/, 
    query: { 
     presets: ['es2015'] 
    } 
    } 
], 

}

以下是錯誤

無效的配置對象。 Webpack已使用與API模式不匹配的配置對象進行初始化。 - configuration.module具有未知屬性'preLoaders'。這些屬性是有效的: object {exprContextCritical?,exprContextRecursive?,exprContextRegExp ?, exprContextRequest ?, loaders ?, noParse ?, rules ?, unknownContextCritical ?, unknownContextRecursive?,unknownContextRegExp ?, unknownContextRequest ?, unsafeCache ?, wrappedContextCritical ?, wrappedContextRecursive ?, wrappedContextRegExp? } 影響正常模塊的選項(NormalModuleFactory)。

回答

9

從v2.1-beta.23開始,裝載程序部分重命名爲規則,並且現在使用enforce屬性在每個規則下定義了pre/postLoaders。

所以才改名預加載規則,你應該是好去;-)

34

你,顯然是試圖使用示例用的WebPack V2的WebPack V1。直接從changelog

module: { 
- preLoaders: [ 
+ rules: [ 
     { 
     test: /\.js$/, 
+  enforce: "pre", 
     loader: "eslint-loader" 
     } 
    ] 
    } 
+0

這對我有用!謝謝 –

0

先卸載的WebPack

NPM卸載的WebPack --save-dev的

其次

NPM安裝[email protected] - save-dev

0

如果您使用的是webpack 2,那麼您可以在loader數組中使用enforce:'pre'標記,這將作爲預載請參閱下面的代碼詳情

module: { 
    loaders: [ 
     { 
      test: /\.js$/, 
      exclude: /node_modules/, 
      loader: 'jshint-loader', 
      //this is similar to defining a preloader 
      enforce: 'pre' 
     }, 
     { 
      test: /\.es6$/, 
      exclude: /node_modules/, 
      loader: "babel-loader" 
     } 
    ] 

},