Vue.js:vue.config.js 中的选项无效:不允许使用“插件”

Posted

技术标签:

【中文标题】Vue.js:vue.config.js 中的选项无效:不允许使用“插件”【英文标题】:Vue.js: Invalid options in vue.config.js: "plugins" is not allowed 【发布时间】:2020-04-19 21:14:48 【问题描述】:

我有一个 webpack 项目,我想使用 Stylelint 进行 SCSS linting。我已按照 Stylelint 网站上的说明进行安装:

"stylelint": "^12.0.1",
"stylelint-webpack-plugin": "^1.1.2",

然后我把它放在 vue.config.js 中:

plugins: [
  new StylelintPlugin(
    files: '**/*.s?(a|c)ss'
  )
],

当我启动服务器时,我得到了这个:

Invalid options in vue.config.js: "plugins" is not allowed

我搜索了高低,但我没有找到任何东西。 任何帮助将不胜感激。

这里是 vue.config.js:

const StylelintPlugin = require('stylelint-webpack-plugin')

module.exports = 

  plugins: [
    new StylelintPlugin(
      files: '**/*.s?(a|c)ss'
    )
  ],

  assetsDir: 'asset',

  configureWebpack: config => 
    config.entry = '@/wrapper/main.js'
  ,

  chainWebpack: config => 
    config.plugins.delete('prefetch')
  ,

  lintOnSave: undefined,
  runtimeCompiler: true

【问题讨论】:

请出示你的 vue.config.js - 看来你在错误的地方添加了插件 @ValeriiVoronkov 我已经添加了 vue.config.js 将你的插件移动到 configureWebpack 对象中,它就会起作用 @ValeriiVoronkov 我已将其移至 configureWebpack 对象并启动了开发服务器,但它挂起。它什么也不做。可能是什么问题? 尝试使用 require 来评论插件和字符串 - 如果它可以工作,你应该澄清这个插件集的确切情况 【参考方案1】:

调整 webpack 配置的最简单方法是为 vue.config.js 中的 configureWebpack 选项提供一个对象:

// vue.config.js
module.exports = 
  configureWebpack: 
    plugins: [new MyAwesomeWebpackPlugin()]
  

该对象将使用 webpack-merge 合并到最终的 webpack 配置中。

结帐https://cli.vuejs.org/guide/webpack.html 了解更多信息。

【讨论】:

【参考方案2】:

你试过这个语法吗:

const StylelintPlugin = require('stylelint-webpack-plugin')

module.exports = 

  assetsDir: 'asset',

  configureWebpack: config => 
    config.entry = '@/wrapper/main.js'
  ,

  chainWebpack: config => 
    config.plugins.delete('prefetch')

    config.plugin('stylelint').use(StylelintPlugin, [
      
        files: '**/*.s?(a|c)ss'
      
    ])
  ,

  lintOnSave: undefined,
  runtimeCompiler: true

这就是我们设法让它发挥作用的方式。

【讨论】:

【参考方案3】:

也许这会对某人有所帮助

// vue.config.js
module.exports = 
 configureWebpack: 
  plugins: [
   new MyAwesomeWebpackPlugin()
  ]
 


// In my case i was doing below and was facing the same error
const path = require('path')
const PrerenderSPAPlugin = require('prerender-spa-plugin')

module.exports = 
    configureWebpack: 
        plugins: [
               new PrerenderSPAPlugin(
                // Required - The path to the webpack-outputted app to prerender.
                staticDir: path.join(__dirname, 'dist'),
                // Required - Routes to render.
                routes: ['/', '/page-path', '/another-page'],
            )
        ]
    ,
    lintOnSave: false

https://cli.vuejs.org/guide/webpack.html#simple-configuration

【讨论】:

以上是关于Vue.js:vue.config.js 中的选项无效:不允许使用“插件”的主要内容,如果未能解决你的问题,请参考以下文章

在 Vue.js 中使用 vue.config.js 修复 sass-loader 错误

通过修改 vue.config.js 在 Vue.js MPA(多页应用程序)中提供自定义“找不到页面”404 页面?

如何更改 vue.js 应用程序中的 lint 目录?

如何将 Vue.js 与 Flask 结合使用?

vue中的代理跨域

在 Vue.js 项目中包含一个手写笔插件