2017-04-13 6 views
0

私はJenkinsを使用して反応アプリケーションを構築していますが、ビルドは成功します。しかし、一部のコンポーネントが読み込まれず、エラーが発生する:Jenkinsを使用したReactアプリケーションの問題ファイルローダーのためにファイルが欠落しています

Uncaught Error: Cannot find module './sun.png' 

ローカル、すべて正常に動作します。

アプリ構造(サーバー):

/public/images/<images_are_here> 

アイコンコンポーネント:

import React from 'react'; 

const Icon = ({icon, size}) => { 

    const iconStyle = { 
     "height" : size + 'px', 
     "width" : size + 'px', 
     "pointerEvents": "none" 
    }; 

    return (
    <img src={require('../../../public/images/' + icon)} style={iconStyle} alt=""/> 
); 
}; 

export default Icon; 

Webpack.config.js:

過去にRailsのを使用して
module.exports = { 
entry: ['babel-polyfill', __dirname + '/src/index.js'], 
output: { 
    path: __dirname + '/public/js', 
    filename: 'bundle.js', 
    publicPath: "/public/images/" 
}, 
module: { 
    rules: [ 
     { 
      test: /\.jsx?$/, 
      exclude: '/node_modules/', 
      loader: 'babel-loader', 
      query: { 
       presets: [ 
        'es2015', 
        'stage-0', 
        'react' 
       ] 
      } 
     }, 
     { 
      test: /\.scss$/, 
      use: ["style-loader", "css-loader", "sass-loader"] 
     }, 
     { 
      test: /\.(jpg|png|svg)$/, 
      use: ['file-loader?name=[name].[ext]'] 
     } 
     ] 
    } 
}; 

、私が覚えています使用される資産は事前にコンパイルされ、クライアントが補間方法を知っていたハッシュを生成します。 react + webpackの場合はどうなりますか?

答えて

0

ファイルローダーをurl-loaderに置き換えると、問題が解決しました。私はそれが奇妙な行動(IMO)であるため、実際の理由を見つけたら掘り下げて更新します。

+0

これが実際の回答であれば、あなた自身の答えを受け入れるべきです。また、この質問には "actionhero"というタグが付いていますが、リンクは表示されません。おそらく削除する価値があります。 – nembleton

+1

@nembletonありがとう、完了 – Chen

+1

ニース。ありがとう。最後に、あなたの質問と回答を見つけることができるように、同じ問題を抱えている可能性がある他の人たちのために、あなたの問題を説明する "検索友好的"なものにタイトルを改名します。 「Jenkinsを使用したReactアプリケーションのビルドに関する問題、ファイルローダーのために見つからないファイルがある」などのようなものです。ちょうど提案。 – nembleton

関連する問題