我正在通过react router tutorial使用我自己的自定义webpack构建,并且出现“意外令牌<”错误。这通常是由于babel transpiler being incorrectly specified。但是,这不是这种情况。我的编译器在开发过程中按照指定的工作方式工作,但在生产版本的相同设置下失败。我不知道为什么。React意外令牌<
我.babelrc文件具有正确的预设:
...
"presets": ["es2015", "stage-0", "react"]
...
我webpack.config.js使用它来transpile用于开发:
loaders: [{
test: /\.js$/,
loaders: ['react-hot', 'babel?cacheDirectory=' + PATHS.cache],
exclude: PATHS.node_modules
}...
我webpack.config.js使用这transpile为督促:
loaders: [{
test: /\.js$/,
loader: 'babel',
exclude: PATHS.node_modules,
}...
和我的package.json拥有所有正确的库:
...
"devDependencies": {
"babel-core": "^6.0.20",
"babel-eslint": "^4.1.3",
"babel-loader": "^6.2.5",
"babel-plugin-transform-runtime": "^6.12.0",
"babel-preset-es2015": "^6.0.15",
"babel-preset-react": "^6.0.15",
"babel-preset-react-hmre": "^1.1.1",
"babel-preset-stage-0": "^6.0.15",
...
"dependencies": {
"react": "^0.14.6",
"react-d3-wrap": "^2.1.2",
"react-dom": "^0.14.6",
"react-redux": "^4.4.5",
"react-router": "^2.7.0",
...
奇怪的是,Chrome的报告说,从index.html中的HTML实际上已经取代的主要.js文件。因此错误。
但是,直接检查这些文件表明,这个情况并非如此:
你可以找到构建here
任何想法可能是什么的回购去这里?
编辑:当我的服务器请求捆绑软件时,它返回html。因此,也许有一些错误督促服务器:
var express = require('express');
var path = require('path');
var compression = require('compression');
var app = express();
app.use(express.static(path.join(__dirname, 'dist')));
app.get('*', function (req, res) {
res.sendFile(path.join(__dirname, 'dist', 'index.html'))
});
var PORT = process.env.PORT || 8080;
app.listen(PORT, function() {
console.log("Production express server running at localhost: " + PORT)
});
EDIT2:有些事情错了,我怎么会在这里解决的要求。如果我删除:
app.get('*', function (req, res) {
res.sendFile(path.join(__dirname, 'dist', 'index.html'));
});
然后我可以发送请求到捆绑并返回捆绑。通过这一行,发送一个请求来获取包返回index.html。
当浏览器请求包时,服务器返回什么? –
@DavinTryon,更新了问题。 – Logister
它看起来像你正在做请求.js,这可能会抛出浏览器。您需要将其作为.html请求,或者确保您从快速方面返回正确的内容类型。 – agmcleod