我有一些组件,其中包含使用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}} />)
}
}
在使用tape测试这些组件时,它们会出现问题。如果我包含css模块,那么没有问题,我可以使用css-modules-require-hook,但svg不起作用。所以我真的需要一个原始加载程序要求钩子或类似的东西。
require('babel-register');
require('css-modules-require-hook/preset');
/* tests after this can import components with css includes */
我尝试使用同构确保,但是这并没有起作用。
require('babel-register');
require('css-modules-require-hook/preset');
require('isomorphic-ensure')({
loaders: {
raw: require('raw-loader'),
raw: require('react-svgdom-loader')
},
dirname: __dirname
})
我遇到了以下错误:
无法找到模块“!raw!../assets/images/”
import
移到模块外部并在那里注入它(作为prop传递)吗?如果这对你不起作用,你可以考虑使用类似rewire的东西。 - Juho Vepsäläinenrequire('babel-register')
,然后是require( 'isomorphic-ensure')
,最后是我的组件、动作和减速器测试列表。例如:require('./components/Logo.spec.js');
- svnm{ test: /\.svg$/, loaders: ['react-svgdom', 'svgo'] }
- svnm