我正面临一个奇怪的错误,当我安装引导。错误如下。我尝试卸载less-loader并安装less-loader@5.0.0,因为我在网上看到了它,但它什么都没有。我不确定在这一步该做什么。

TypeError:这个。getOptions不是一个函数

 @ ./node_modules/vue-style-loader??ref--8-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/vue-loader-v16/dist/stylePostLoader.js!./node_modules/postcss-loader/src??ref--8-oneOf-1-2!./node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader-v16/dist??ref--0-1!./src/App.vue?vue&type=style&index=0&id=7ba5bd90&lang=scss 4:14-419 14:3-18:5 15:22-427
 @ ./src/App.vue?vue&type=style&index=0&id=7ba5bd90&lang=scss
 @ ./src/App.vue
 @ ./src/main.js
 @ multi (webpack)-dev-server/client?http://192.168.1.182:8080&sockPath=/sockjs-node (webpack)/hot/dev-server.js ./src/main.js

当前回答

如果依赖包的版本与你的包中的版本不同,NPM会将依赖包下载到模块内部的模块中。但有时它会下载最新版本或依赖包(我不知道为什么)到一个模块…

例如,你可以使用sass-loader: 2。X在你的包里。一个模块XXXX,在它的依赖包中也有sass-loader: *(你可以在包中检查它。json)。

NPM将下载sass-loader 2。X为你,和sass-loader: 3。X表示XXXX包—您将得到一个错误。

一个快速的修复方法是从XXXX/node_modules中删除额外的包。 您还可以检查XXXX模块使用的包版本,并尝试在项目中使用相同的版本。

在我的例子中font-awesome-sass-loader@2.0.1与project.json:

  "dependencies": {
    "css-loader": "*",
    "sass-loader": "*",
    "style-loader": "*"
  },

下载的sass-loader: 3.0.0。

而npm根据项目下载了sass-loader: 2.0.0。Json在我的项目:

:“style-loader 2.0.0”

我删除了node_modules/font-awesome-sass-loader/node_modules/,它修复了这个问题。

其他回答

感谢itacode,我们只需要做:

该-D仅表示开发环境,您可以为所有环境删除它。

纱:

# yarn add @vue/cli@^4
yarn add -D sass
yarn add -D less
yarn add -D sass-loader@^10
yarn add -D less-loader@^7

或npm:

# npm i @vue/cli@^4
npm i -D sass
npm i -D less
npm i -D sass-loader@^10
npm i -D less-loader@^7

我们遇到了不同版本的问题,下面的组合是可行的:

文件:package.json

{
    "devDependencies": {

        "webpack": "^4.46.0",
        "css-loader": "^5.1.1",

        "babel-loader": "8.1.0",
        "file-loader": "^6.1.0",
        "json-loader": "^0.5.7",
        "postcss-loader": "^6.2.1",
        "raw-loader": "^4.0.1",
        "sass-loader": "^12.6.0",
        "source-map-loader": "^3.0.1",
        "style-loader": "^3.3.1",
        "svg-url-loader": "^6.0.0",
        "ts-loader": "^5.3.3",
        "url-loader": "^4.1.1"
    }
}

文件:webpack.config.js

module.exports = {
    module: {
        rules: [
            {
                test: /\.css$/,
                loader: "css-loader",
            }
        ]
    }
}

跑纱拆纱机

然后安装了专门的10版作为yarn添加sass-loader@10。 这完全解决了“vue”中的问题:“~2.6.12”,

样式加载器v3也放弃了对Webpack 4的支持。

你的包。Json条目应该是这样的:

:“style-loader ^ 2.0.0”

如果依赖包的版本与你的包中的版本不同,NPM会将依赖包下载到模块内部的模块中。但有时它会下载最新版本或依赖包(我不知道为什么)到一个模块…

例如,你可以使用sass-loader: 2。X在你的包里。一个模块XXXX,在它的依赖包中也有sass-loader: *(你可以在包中检查它。json)。

NPM将下载sass-loader 2。X为你,和sass-loader: 3。X表示XXXX包—您将得到一个错误。

一个快速的修复方法是从XXXX/node_modules中删除额外的包。 您还可以检查XXXX模块使用的包版本,并尝试在项目中使用相同的版本。

在我的例子中font-awesome-sass-loader@2.0.1与project.json:

  "dependencies": {
    "css-loader": "*",
    "sass-loader": "*",
    "style-loader": "*"
  },

下载的sass-loader: 3.0.0。

而npm根据项目下载了sass-loader: 2.0.0。Json在我的项目:

:“style-loader 2.0.0”

我删除了node_modules/font-awesome-sass-loader/node_modules/,它修复了这个问题。