私はこの質問が以前に尋ねられたことは知っていますが、正直なところ答えは見つけられません。だから私はこのwebpack.config.js
HMR + Reactとtypescript(tsx構文)を扱うはずのファイルを持っていますが、バンドルを作成していません。コンパイル時にエラーは発生しません。問題はないようですが、フェッチしようとすると、バンドルは404を返します。ここに私のファイル構造です:bundle.jsを見つけることができません
someApp/
src/
index.tsx
components/
Hello.tsx
dist/
webpack.config.js
...
そして、ここに私のWebPACKの設定です:
var path = require('path')
var webpack = require('webpack')
module.exports = {
entry: [
'webpack-dev-server/client?http://localhost:3000',
'webpack/hot/only-dev-server',
'./src/index.tsx'
],
output: {
path: path.join(__dirname, '/dist'),
filename: 'bundle.js',
publicPath: '/public/'
},
plugins: [
new webpack.HotModuleReplacementPlugin()
],
devtool: 'eval',
resolve: {
extensions: ['', '.webpack.js', '.web.js', '.ts', '.tsx', '.js']
},
module: {
loaders: [
{
test: /\.tsx?$/,
loaders: [
'react-hot-loader',
'ts-loader'
],
include: path.join(__dirname, '/src')
}
],
preLoaders: [
{ test: /\.js$/, loader: 'source-map-loader' }
]
},
externals: {
'react': 'React',
'react-dom': 'ReactDOM'
},
};
別の奇妙なことは、私はそれが私がちょうどwebpack
を実行したとき以来、ノードを介してこれを実行するとは何かを持っているかもしれないと思うということですそれ自身でバンドルをコンパイルします。ここでは、サーバを起動するための私のコードは次のとおりですので、任意のヘルプは素晴らしいだろう
var webpack = require('webpack');
var WebpackDevServer = require('webpack-dev-server');
var config = require('./webpack.config');
new WebpackDevServer(webpack(config), {
publicPath: config.output.publicPath,
hot: true,
historyApiFallback: true
}).listen(3000, 'localhost', function (err, result) {
if (err) {
return console.log(err)
}
console.log('Listening at http://localhost:3000/')
})
は、たぶん私は何かが足りないんだけど、私はWebPACKのにかなり新たなんです!
ありがとうDavid!これはディスクから提供されているのは非常に素晴らしいですが、バンドルファイルは 'localhost:3000/dist/bundle.js'から利用できません。これが私の設定ファイルの場合には何らかの理由がありますか?おそらく私はちょうどあなたが間違ったことをしていない – Jay
からバンドルを要求する必要があるパスについては混乱していますが、webpack-dev-serverはbundle.jsをメモリから提供しています。あなたが 'webpack-dev-server/client?http:// localhost:3000'、 'webpack/hot/only- dev-server '、それはディスクに出力されます – David
Davidを説明してくれてありがとう!私はあなたが私のことを誤解していると思うのですが、私はdevサーバがbundle.jsをメモリから提供していることを理解していますが、 'localhost:3000/dist/bundle.js'を要求し、ディスクに書き込まないので、 'dist'フォルダには入っていませんが、私はそれを要求することができますか? – Jay