Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Webpack 网页包配置具有未知属性';预紧器';_Webpack_Config_Lint_Preloader - Fatal编程技术网

Webpack 网页包配置具有未知属性';预紧器';

Webpack 网页包配置具有未知属性';预紧器';,webpack,config,lint,preloader,Webpack,Config,Lint,Preloader,我正在从头开始学习网页包。我已经学习了如何将javascript文件与require链接。我正在捆绑和缩小我的js文件,我正在监听watch的变化。我正在设置加载程序,将我的sass文件转换为css。但是,当我尝试使用jshint loader设置linting进程时,我遇到了一些问题 module: { preLoaders: [ { test: /\.js$/, // include .js files exclude:

我正在从头开始学习网页包。我已经学习了如何将javascript文件与require链接。我正在捆绑和缩小我的js文件,我正在监听watch的变化。我正在设置加载程序,将我的sass文件转换为css。但是,当我尝试使用jshint loader设置linting进程时,我遇到了一些问题

    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']
    }
  }
],
}

这里是错误

无效的配置对象。已使用与API架构不匹配的配置对象初始化Web包。 -configuration.module具有未知属性“preLoaders”。这些属性是有效的: 对象{exprContextCritical?,ExprContextExecutive?,exprContextRegExp?,exprContextRequest?,loaders?,noParse?,规则?,unknownContextCritical?,unknownContextRecursive?,unknownContextRegExp?,unknownContextRequest?,Unfectache?,wrappedContextCritical?,wrappedContextRecursive?,wrappedContextRegExp?}} 影响普通模块的选项(
NormalModuleFactory


v2.1-beta.23开始,加载器部分被重命名为规则,并且pre/postLoaders现在在每个规则下使用强制属性定义


因此,只需将
预加载程序重命名为
规则
,您就可以开始了;-)

显然,您正在尝试使用WebpackV1和WebpackV2的示例。直截了当地说:


首先卸载网页包

npm卸载网页包--保存开发文件


npm安装webpack@2.1.0-beta.22--保存开发版本

如果您使用的是webpack 2,那么您可以在loaders数组中使用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"
        }
    ]

},

改用这个。/webpack.config.js

 var path = require('path');

module.exports = {
   entry: './main.ts',
   resolve: {
     extensions: ['.webpack.js', '.web.js', '.ts', '.js']
   },
   module: {
     rules: [
      {
        test: /\.tsx?$/,
        use: 'ts-loader',
        exclude: /node_modules/
      }
    ]
   },
   output: {
     filename: 'bundle.js',
     path: path.resolve(__dirname, 'dist')
   }
 }

可以找到文档该问题与您安装的ts loader版本有关

对我来说,它通过简单地将“loaders”更改为“rules”来工作。

我的属性“loaders”有错误。我找了很多,但什么也没找到。然后你的回答很有魅力。我刚刚将“加载程序”更改为“规则”。@Akshay您的解决方案是正确的,因为4.1.1以上的版本:检查此模块:{preload:[{test:/\.js$/,exclude:'node\u modules',loader:'jshint-loader',}],规则:[{test:/\.es6$/,exclude:[/node_modules/],加载程序:“babel加载程序”,}]配置仍有错误。模块具有未知属性“preLoaders”。请提供完整信息syntax@Aji-和+类似于diff:减号表示要删除的内容,加号表示要添加到代码中的内容。因此,我的示例将包含除
预加载程序
一行之外的所有行
 var path = require('path');

module.exports = {
   entry: './main.ts',
   resolve: {
     extensions: ['.webpack.js', '.web.js', '.ts', '.js']
   },
   module: {
     rules: [
      {
        test: /\.tsx?$/,
        use: 'ts-loader',
        exclude: /node_modules/
      }
    ]
   },
   output: {
     filename: 'bundle.js',
     path: path.resolve(__dirname, 'dist')
   }
 }