webpack - Babel 6 到 7 升级
问题描述
我已经使用babel-upgrade来升级我们的 babel/webpack 设置,但是我收到了这个错误。
ModuleNotFoundError: Module not found: Error: Can't resolve 'regenerator-runtime/runtime' in 'C:\Users\...\node_modules\@babel\polyfill\lib'
这是我们的 package.json
{
"dependencies": {
"@babel/polyfill": "^7.0.0",
"@babel/register": "^7.0.0"
},
"devDependencies": {
"@babel/core": "^7.1.6",
"@babel/plugin-proposal-object-rest-spread": "^7.0.0",
"@babel/preset-env": "^7.1.6",
"@babel/preset-react": "^7.0.0",
"@types/webpack": "^4.4.0",
"babel-core": "^7.0.0-bridge.0",
"babel-jest": "^23.6.0",
"babel-loader": "^8.0.4",
"expose-loader": "^0.7.5",
"po-loader": "^0.4.1",
"po2json": "^0.4.5",
"ts-loader": "^5.0.0",
"typescript": "^3.1.4",
"webpack": "^4.17.2",
"webpack-cli": "^3.1.0",
"webpack-dev-server": "^3.1.3"
},
"babel": {
"presets": [
"@babel/preset-env",
"@babel/preset-react"
],
"plugins": [
"@babel/plugin-proposal-object-rest-spread"
]
}
}
Webpack 配置
'use strict';
/// <reference types="node" />
const path = require('path');
const fs = require('fs');
const webpack = require('webpack');
/** @type {webpack.Configuration} */
const config = {
bail: true,
mode: 'development',
target: 'web',
entry: {
ravenjs: 'raven-js',
vendor: ['@babel/polyfill', 'whatwg-fetch'],
upload: ['upload/UploadComponent'],
video: 'video/player.ts',
},
resolve: {
modules: [javaScriptSourceDir, typeScriptSourceDir, nodeModules],
extensions: ['.ts', '.tsx', '.js', '.jsx', '.json', 'po'],
},
externals: {
'jquery': 'jquery', // require("jquery") is compiled as runtime require("jquery")
'raven': 'bundle/ravenjs',
},
output: {
path: bundleDir,
filename: '[name].js',
sourceMapFilename: '[file].map',
chunkFilename: 'chunk[id].js',
publicPath: '',
libraryTarget: 'amd'
},
module: {
rules: [
{
// use Babel for source files
test: /\.js(x?)$/,
include: javaScriptSourceDir,
use: [{
loader: 'babel-loader',
options: {
cacheDirectory: true,
},
}],
},
{
// compile and transpile .ts files
test: /\.ts$/,
use: [
{
loader: 'babel-loader',
options: {
cacheDirectory: true,
},
},
{
loader: 'ts-loader',
options: {
configFile: TSConfigFile,
//useBabel: true,
//useCache: true,
}
},
],
},
{
// *.po -> *.json
test: /\.po$/,
include: javaScriptSourceDir,
use: [{
loader: 'po-loader',
options: {
format: 'jed1.x',
},
}],
type: 'json',
}
]
},
plugins: [
new webpack.ProvidePlugin({ React: 'react' }),
],
};
module.exports = config;
解决方案
推荐阅读
- ruby-on-rails - 双重记账 + 我的代码中的错误 = :(
- angular - AuthGuard 在角度 7 中路由到“”
- apache-spark - 如何将标头添加到 PySpark DataFrame?
- google-app-engine - App Engine vs Compute Engine 作为 Memorystore 的简单 API
- c++ - C++ 类作为函数的参数不起作用
- c# - 单选按钮上的 C# 折扣
- javascript - 如何计算行总数onclick函数
- python - 如何调试 Python 模块?
- ios - 无法验证 TNSWidgets.framework/TNSWidgets 中的位码
- opencv - 最佳方法:如何检测特征很少但成组出现的对象