Nicht finden können bundle.js
Ich weiß, diese Frage wurde gebeten vor, aber ich kann ehrlich gesagt nicht die Antwort finden überall-- es scheint, als ob ich alles tun, ich sollte aber bundle ist nicht erstellt. Also ich habe das webpack.config.js
- Datei handhaben soll, HMR + Reagieren, und Typoskript (mit tsx-syntax), aber es ist nicht das bundle. Wirft keine Fehler auf Zusammenstellung und scheint, zu tun, klar, aber das bundle gibt einen 404, wenn ich versuche, um es zu Holen. Hier ist meine Datei-Struktur:
someApp/
src/
index.tsx
components/
Hello.tsx
dist/
webpack.config.js
...
Und hier ist mein webpack config:
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'
},
};
Andere seltsame Sache ist, dass ich denke, es könnte etwas damit zu tun haben, die mit der Ausführung dieses durch Knoten, da, wenn ich einfach laufen webpack
selbst kompiliert er das Bündel. Hier ist mein code für das Hochfahren der server:
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/')
})
Vielleicht bin ich etwas fehlt, aber ich bin ziemlich neu im webpack so dass jede Hilfe wäre erstaunlich!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das ist, weil webpack-dev-server dient bundle.js aus dem Speicher. Dies geschieht, um dem servieren bundle.js schnell. Sie können hinzufügen, einem anderen webpack config für die Produktion, die spuckt bundle.js auf der Festplatte
und alle anderen Module, nicht nur Ihre dev-server
wenn Sie Holen wollen bundle.js wie localhost:3000//..../bundle.js
versuchen, diese
EDIT: Wenn Sie wollen, zu Holen bundle.js
müssen Sie verwenden, was ist definiert in der publicPath: '/public/'. so für Sie der url, die Sie abholen können bundle.js aus ist diesem localhost:3000/public/bundle.js
localhost:3000/dist/bundle.js
. Sehen Sie einen Grund, warum dies wäre der Fall, aus meiner config-Datei? Vielleicht bin ich auch nur verwirrt, welchen Weg ich sollte verlangen, dass ein Paket auslocalhost:3000/dist/bundle.js
und erhalten Sie es? Ich verstehe, dass es nicht in derdist
Ordner, da es nicht auf die Platte schreiben, aber ich sollte in der Lage sein, es zu verlangen, nicht?Ich glaube, Sie brauchen, um Ihre Ausgabe zu diesem:
/
.localhost:3000/dist/bundle.js