繁体   English   中英

如何忽略原始加载程序来测试webpack

[英]How to ignore raw loader for testing webpack

我有一些使用webpack原始加载器内联svg加载的组件,例如..

import React, { Component } from 'react'
import svg from '!raw!../assets/images/logo.svg'

export default class Logo extends Component {
  render() {
    return (<a href={this.props.url} dangerouslySetInnerHTML={{__html: svg}} />)
  }
}

当尝试使用磁带测试服务器端的这些组件时,它们就会崩溃。 如果我有css模块,这没有问题,我可以使用css-modules-require-hook,但svg将无法正常工作。 所以我真的需要一个原始的加载器需要钩子或类似的东西。

require('babel-register');
require('css-modules-require-hook/preset');
/* tests after this can import components with css includes */

我尝试使用isomorphic-ensure,但这不起作用。

require('babel-register');
require('css-modules-require-hook/preset');
require('isomorphic-ensure')({
  loaders: {
    raw: require('raw-loader'),
    raw: require('react-svgdom-loader')
  },
  dirname: __dirname
})

我收到以下错误:

Cannot find module '!raw!../assets/images/

如果您没有使用webpack进行测试,那么您可以使用ignore-styles模块

如果您计划将其与css-modules-require-hook一起使用,则可能必须对其进行配置, 因为默认情况下它也会忽略CSS文件 例如:

require('ignore-styles').register(['.svg'])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM