带有 Angular 8 自定义 webpack 配置的 svg-sprite-loader [英] svg-sprite-loader with Angular 8 custom webpack config

查看:41
本文介绍了带有 Angular 8 自定义 webpack 配置的 svg-sprite-loader的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用自定义 webpack 配置在我的 Angular 8 项目中使用 svg-sprite-loader 包(以创建 svg sprite).

I am trying to use svg-sprite-loader package (to create a svg sprite) with my Angular 8 project using custom webpack config.

我正在使用以下自定义配置:

I am using below custom config:

const SpriteLoaderPlugin = require('svg-sprite-loader/plugin');

module.exports = {
    module: {
        rules: [
            {
                test: /\.(svg)$/,
                loader: 'svg-sprite-loader',
                options: {
                    spriteFilename: './src/assets/svg/combinedicons.svg',
                    runtimeCompat: true,
                },
            },
        ],
    },
    plugins: [
        new SpriteLoaderPlugin({
        plainSprite: true,
        }),
    ],
};

运行 ng build 时出现以下错误:

I am getting following error while running ng build:

找不到模块'webpack/package.json'错误:找不到模块webpack/package.json"

Cannot find module 'webpack/package.json' Error: Cannot find module 'webpack/package.json'

我无法确定问题出在哪里,是我的配置还是包本身.

I am not able to identify where the issue is, is it with my config or the package itself.

推荐答案

您可能需要通过 npm i -D webpack 安装 Webpack 作为显式依赖项.

You might need to install Webpack as an explicit dependency via npm i -D webpack.

或者您可能安装了 2 个不同版本的 Webpack.

Or you might have 2 different versions of Webpack installed.

运行 npm ls webpack.

您应该会看到如下内容:

You should see something like this:

user$ npm ls webpack
@my-app /Users/user/my-app
├─┬ @angular-devkit/build-angular@0.13.9
│ └── webpack@4.29.0  deduped
└── webpack@4.29.0

如果您有不同版本的 webpack,请尝试 npm 安装与 @angular-devkit/build-angular 依赖项匹配的 webpack 版本.

If you have different versions of webpack try npm installing a version of webpack that matches that of the @angular-devkit/build-angular dependency.

如果您全局安装了 CLI,还值得检查您是否全局安装了多个版本的 Webpack.

If you have the CLI installed globally it's also worth checking if you have multiple versions of Webpack installed globally.

我相信你可以运行 npm ls -g webpack.

这篇关于带有 Angular 8 自定义 webpack 配置的 svg-sprite-loader的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆