Configuration.resolve 有一个未知 属性 'root'
Configuration.resolve has an unknown property 'root'
我收到以下错误:
Invalid configuration object. Webpack has been initialised using a
configuration object that does not match the API schema.
- configuration.resolve has an unknown property 'root'. These properties are valid: object { alias?, aliasFields?,
cachePredicate?, descriptionFiles?, enforceExtension?,
enforceModuleExtension?, extensions?, fileSystem?, mainFields?,
mainFiles?, moduleExtensions?, modules?, plugins?, resolver?,
symlinks?, unsafeCache?, useSyncFileSystemCalls? }
我的 webpack.config.js 看起来像这样:
module.exports= {
entry:'./public/app.jsx',
output: {
path: __dirname,
filename:'./public/bundle.js'
},
resolve: {
root: __dirname,
alias:{
Mod1: 'public/components/mod1.jsx',
Mod2:'public/components/mod2.jsx',
Mod3: 'public/components/mod3.jsx'
},
extensions: ['*','.js','.jsx']
},
module :{
loaders:[{
loader :'babel-loader',
query :{
presets:['react','es2015','es2017']
},
test:/\.jsx?$/,
exclude:/(node_modules|bower_components)/
}]
}
};
您尝试过删除 LINE 8 吗?是否通过任何错误?
正如您可能已经猜到的那样,它在您尝试设置无效的 属性 时抛出错误。
您在配置 webpack 时遵循的说明可能已过时。
不用 LINE 8 试试看,如果问题仍然存在,请告诉我,我们可以一起解决。
resolve.root
是 Webpack 1 配置,对于 Webpack 2 不存在。
对于 Webpack 2 你可以使用 resolve.modules
: https://webpack.js.org/configuration/resolve/#resolve-modules
module.exports= {
entry:'./public/app.jsx',
output: {
path: __dirname,
filename:'./public/bundle.js'
},
resolve: {
modules: [__dirname, 'node_modules'],
alias:{
Mod1: 'public/components/mod1.jsx',
Mod2:'public/components/mod2.jsx',
Mod3: 'public/components/mod3.jsx'
},
extensions: ['*','.js','.jsx']
},
module :{
rules:[{
use : 'babel-loader',
query :{
presets:['react','es2015','es2017']
},
test: /\.jsx?$/,
exclude: /(node_modules|bower_components)/
}]
}
};
我还更新了 module.loaders
-> module.rules
,因为这在 Webpack 2 中已弃用。
我收到以下错误:
Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema. - configuration.resolve has an unknown property 'root'. These properties are valid: object { alias?, aliasFields?, cachePredicate?, descriptionFiles?, enforceExtension?, enforceModuleExtension?, extensions?, fileSystem?, mainFields?, mainFiles?, moduleExtensions?, modules?, plugins?, resolver?, symlinks?, unsafeCache?, useSyncFileSystemCalls? }
我的 webpack.config.js 看起来像这样:
module.exports= {
entry:'./public/app.jsx',
output: {
path: __dirname,
filename:'./public/bundle.js'
},
resolve: {
root: __dirname,
alias:{
Mod1: 'public/components/mod1.jsx',
Mod2:'public/components/mod2.jsx',
Mod3: 'public/components/mod3.jsx'
},
extensions: ['*','.js','.jsx']
},
module :{
loaders:[{
loader :'babel-loader',
query :{
presets:['react','es2015','es2017']
},
test:/\.jsx?$/,
exclude:/(node_modules|bower_components)/
}]
}
};
您尝试过删除 LINE 8 吗?是否通过任何错误?
正如您可能已经猜到的那样,它在您尝试设置无效的 属性 时抛出错误。
您在配置 webpack 时遵循的说明可能已过时。
不用 LINE 8 试试看,如果问题仍然存在,请告诉我,我们可以一起解决。
resolve.root
是 Webpack 1 配置,对于 Webpack 2 不存在。
对于 Webpack 2 你可以使用 resolve.modules
: https://webpack.js.org/configuration/resolve/#resolve-modules
module.exports= {
entry:'./public/app.jsx',
output: {
path: __dirname,
filename:'./public/bundle.js'
},
resolve: {
modules: [__dirname, 'node_modules'],
alias:{
Mod1: 'public/components/mod1.jsx',
Mod2:'public/components/mod2.jsx',
Mod3: 'public/components/mod3.jsx'
},
extensions: ['*','.js','.jsx']
},
module :{
rules:[{
use : 'babel-loader',
query :{
presets:['react','es2015','es2017']
},
test: /\.jsx?$/,
exclude: /(node_modules|bower_components)/
}]
}
};
我还更新了 module.loaders
-> module.rules
,因为这在 Webpack 2 中已弃用。