为此奋斗!
我有react应用,(我的设置在构建项目之前已经重复使用/复制了很多次)。除了今天,我从来没有遇到过这个错误!
但是当我使用Webpack Webt构建我的应用程序或推送到heroku时,出现以下错误:
ERROR in app.js from UglifyJs
Unexpected token: name (App) [app.js:2930,6]
尽管我没有安装uglify
作为依赖项。
我认为这可能与我的.babelrc
有关。以前,我的预设定义为:
{
"presets": ["env","react"],"plugins": [
"transform-class-properties","transform-object-rest-spread"
]
}
但这会导致此错误,并阻止我的应用在节点上本地运行:
Uncaught ReferenceError: regeneratorRuntime is not defined
因此,然后我将预设更改为以下内容(在阅读了stackoverflow之后),该问题得以解决,并且我的应用程序可在本地运行。 (我认为这解决了一个异步问题)。
{
"presets": [
[
"env",{
"targets": {
"node": "9"
}
}
],"react"
],"transform-object-rest-spread"
]
}
但是现在我无法使用webpack构建我的应用程序。或推到heroku。即使我的应用程序在本地运行。
我有点圈了。我不知道异步/等待是否失败。或者我还有另一个潜在的问题...
仅供参考,这是我的package.json
:
{
"name": "react-webpack-setup","version": "1.0.0","main": "index.js","engines": {
"node": "9.4.0"
},"scripts": {
"start:client": "webpack-dev-server","build": "webpack -p","start": "yarn build && node index"
},"author": "Students","license": "ISC","devDependencies": {
"babel-cli": "^6.18.0","babel-core": "^6.26.0","babel-loader": "^7.1.2","babel-plugin-transform-class-properties": "^6.24.1","babel-plugin-transform-object-rest-spread": "^6.26.0","babel-preset-env": "^1.6.1","babel-preset-react": "^6.24.1","copy-webpack-plugin": "^4.4.1","css-loader": "^0.28.9","file-loader": "^1.1.8","html-webpack-plugin": "^2.30.1","node-sass": "^4.7.2","sass-loader": "^","style-loader": "^0.20.2","supertest": "^3.0.0","url-loader": "^0.6.2","webpack": "^3.11.0","webpack-dev-server": "2.11.1"
},"dependencies": {
"axios": "^0.18.0","bulma": "^0.6.2","express": "^4.16.3","react": "^16.2.0","react-dom": "^16.2.0","react-router-dom": "^4.2.2"
}
}
这是我的webpack.config.js
:
const path = require('path');
// console.log('path',path);
const webpack = require('webpack');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const HtmlWebpack = new HtmlWebpackPlugin({
template: 'src/index.html',filename: 'index.html',inject: 'body'
});
const CopyWebpackPlugin = require('copy-webpack-plugin');
const CopyWebpack = new CopyWebpackPlugin([
{ from: './src/assets',to: 'assets' }
]);
const HotModuleReplcement = new webpack.HotModuleReplacementPlugin();
module.exports = {
entry: './src/app.js',output: {
path: path.resolve('public'),filename: 'app.js',publicPath: '/'
},module: {
loaders: [
{ test: /\.jsx?$/,loader: 'babel-loader',exclude: /node_modules/ },{ test: /\.css$/,loader: ['style-loader','css-loader'] },{ test: /\.s(a|c)ss$/,'css-loader','sass-loader'] },{ test: /\.eot(\?v=\d+\.\d+\.\d+)?$/,loader: 'file-loader' },{ test: /\.(woff|woff2)$/,loader: 'url-loader?prefix=font/&limit=5000' },{ test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/,loader: 'url-loader?limit=10000&mimetype=application/octet-stream' },{ test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,loader: 'url-loader?limit=10000&mimetype=image/svg+xml' },{ test: /\.jpe?g(\?v=\d+\.\d+\.\d+)?$/,loader: 'url-loader?limit=10000&mimetype=image/jpeg' },{ test: /\.gif(\?v=\d+\.\d+\.\d+)?$/,loader: 'url-loader?limit=10000&mimetype=image/gif' },{ test: /\.png(\?v=\d+\.\d+\.\d+)?$/,loader: 'url-loader?limit=10000&mimetype=image/png' }
]
},devserver: {
contentBase: ['src'],watchContentBase: true,historyApiFallback: true,hot: true,inline: true,port: 8000,open: true,proxy: {
'/api': {
target: 'http://localhost:4000',secure: false
}
}
},plugins: [HotModuleReplcement,HtmlWebpack,CopyWebpack]
};