Преодоление разрыва с помощью webpack2 и webpack.LoaderOptionsPlugin
Я нуб-рюкзак. Это выглядит как vue-loader
не обновлялся с помощью веб-пакета 2. В веб-пакете есть своего рода пример помощника (LoaderOptionsPlugin
), но я не могу заставить его работать вообще. Это то, что бросают:
Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.
- configuration has an unknown property 'rules'. These properties are valid:
object { amd?, bail?, cache?, context?, dependencies?, devServer?, devtool?, entry, externals?, loader?, module?, name?, node?, output?, performance?, plugins?, profile?, recordsInputPath?, recordsOutputPath?, recordsPath?, resolve?, resolveLoader?, stats?, target?, watch?, watchOptions? }
For typos: please correct them.
For loader options: webpack 2 no longer allows custom properties in configuration.
Loaders should be updated to allow passing options via loader options in module.rules.
Until loaders are updated one can use the LoaderOptionsPlugin to pass these options to the loader:
plugins: [
new webpack.LoaderOptionsPlugin({
// test: /\.xxx$/, // may apply this only for some modules
options: {
rules: ...
}
})
]
Мой конфиг:
module.exports = {
entry: './src/main.js',
path: path.resolve(__dirname, 'dist'),
rules: [
{test: /\.vue$/, use: 'vue-loader'},
],
plugins: [
new webpack.LoaderOptionsPlugin({
minimize: true,
debug: false,
options: {
context: __dirname
}
})
]
}
Я не хочу понижать пакет, чтобы сделать эту работу. Что я размещаю в опциях? Я не нашел никаких примеров... Любая помощь была бы потрясающей. Спасибо!
1 ответ
Решение
Опция правила не существует. Я думаю, вы можете ошибиться с версией V1, правильная конфигурация должна быть примерно такой, как показано ниже.
module.exports = {
entry: './src/main.js',
output: './build/main.js'
module: {
loaders: [{
test: /\.vue$/,
loader: 'vue-loader'
}]
},
resolve: {
alias: {
'vue$': 'vue/dist/vue.esm.js'
}
}