Webpack 网页包配置具有未知属性';预紧器';
我正在从头开始学习网页包。我已经学习了如何将javascript文件与require链接。我正在捆绑和缩小我的js文件,我正在监听watch的变化。我正在设置加载程序,将我的sass文件转换为css。但是,当我尝试使用jshint loader设置linting进程时,我遇到了一些问题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:
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')
}
}