创建新的 Angular 应用程序时出现以下错误 -
npm WARN deprecated core-js@2.6.11: core-js@<3 不再维护,由于问题数量不推荐使用。请将您的依赖项升级到 core-js@3 的实际版本。
我尝试了以下链接中给出的解决方案,但对我不起作用-错误:请将您的依赖项升级到 core-js@3 的实际版本
当我使用 'ng --version' 命令检查 Angular 的版本时,我看到<error>
下面列出的软件包的版本 -
@angular-devkit/architect
@angular-devkit/core
@angular-devkit/schematics
@schematics/angular
@schematics/update
Run Code Online (Sandbox Code Playgroud)
您能否提出问题所在以及需要采取哪些措施来解决此问题?
PS - 前一天相同的功能运行良好。并且已经创建的项目在本地运行良好。
使用我当前的配置(见下文),我收到此错误:
[object Error]{description: "Argument ob...", message: "Argument ob...", name: "TypeError", number: -2147418113, stack: "TypeError: ...", Symbol()_7.bs7gi3oa3wi: undefined}
Run Code Online (Sandbox Code Playgroud)
我试图挖掘基于Symbol()_ ... : undefined}
但我找不到任何明确的迹象。
这是我的.babel.config.js
:
module.exports = function (api) {
api.cache(true);
const presets = [
[
'@babel/preset-env',
{
// modules: false,
corejs:"3.6.4",
useBuiltIns: 'usage',
targets: {
browsers: [
"edge >= 16",
"safari >= 9",
"firefox >= 57",
"ie >= 11",
"ios >= 9",
"chrome >= 49"
]
}
}
]
];
const plugins= [
["@babel/plugin-proposal-decorators", { decoratorsBeforeExport: true }], …
Run Code Online (Sandbox Code Playgroud) 当我开玩笑地运行我的测试时,我遇到了上述错误;
Error: Uncaught [TypeError: array.map(...).flat is not a function]
Run Code Online (Sandbox Code Playgroud)
按照该问题的解决方案,https://github.com/kulshekhar/ts-jest/issues/828
我已经安装core-js
了依赖项并将其放入jest.config.js
setupFiles: ['core-js'],
Run Code Online (Sandbox Code Playgroud)
我会收到另一个错误;
Error: Uncaught [Error: Not supported]
Run Code Online (Sandbox Code Playgroud)
这只会发生在玩笑中,我在我的应用程序和故事书上使用 babel 和 webpack,在flat
.
我的 jest.config.js
const PATH = require('./path')
module.exports = {
setupFilesAfterEnv: ['./rtl.setup.js'],
moduleFileExtensions: ['js'],
verbose: true,
moduleNameMapper: {
'@components(.*)$': `${PATH.source}/components/$1`
},
transform: {
'^.+\\.js$': 'babel-jest'
}
}
Run Code Online (Sandbox Code Playgroud) 我将 babel7.8.3
与@babel/preset-env
,useBuiltIns: 'usage'
和一起使用corejs: 3
。@babel/preset-env
我不清楚的文档。
我需要在我的入口文件顶部添加以下几行还是由 babel 自动完成?
import 'core-js/stable';
import 'regenerator-runtime/runtime';
Run Code Online (Sandbox Code Playgroud) 像polyfill.io这样的 Polyfill 服务似乎只向浏览器提供小功能检测,然后只延迟加载实际需要的 polyfill。
据我了解关于 polyfilling的babel 文档,babel 总是包含全套可能需要的 polyfill:它会处理 a browserslist
,然后包含最弱浏览器需要的 core-js 中的那些 polyfill。像 webpack 这样的打包器可能会将所有这些 polyfill 合并到应用程序中,但不会检测到运行时功能。
我的应用程序使用现代 ES 语言功能,但也针对各种浏览器,包括 IE10 和 IE11。这需要大量的 polyfill,并且可能会使包膨胀,尤其是对于可能不需要大部分 polyfill 的现代浏览器。
所以我想知道:我可以告诉 babel 和/或 webpack 只包含功能检测,将 polyfill 分成单独的块(单独或分成小包),然后在运行时,只“懒惰”加载实际上是什么需要吗?
我正在开发一个使用 create-react-app 引导的 React 应用程序,它在 Chrome 中运行良好,但我无法让它在 IE11 中运行。
启动应用程序后,我从控制台收到以下错误:
Object doesn't support property or method 'entries'
我花了好几个小时在谷歌上搜索,试图找到一个解决方案,但没有一个推荐的方法有效。
我尝试过的事情:
react-app-polyfill/ie11
和react-app-polyfill/stable
在顶部index.js
core-js/es/object/entries
和core-js/features/object/entries
在顶部index.js
index.js
:if (!Object.entries) {
Object.entries = function( obj ){
var ownProps = Object.keys( obj ),
i = ownProps.length,
resArray = new Array(i); // preallocate the Array
while (i--)
resArray[i] = [ownProps[i], obj[ownProps[i]]];
return resArray;
};
}
Run Code Online (Sandbox Code Playgroud)
包.json:
{
"name": "ceas-ui",
"version": "0.1.0",
"private": true,
"dependencies": {
"auth0-js": …
Run Code Online (Sandbox Code Playgroud) 我正在减少 js 包的大小并偶然发现了 core-js。它大约需要 62kB,约占整个包的 24%。
我尝试使用@babel/preset-env
,但无法进一步缩小尺寸。不确定我是否使用“正确”的设置:
'@babel/preset-env',
{
targets: {
browsers: ['>1%'],
},
useBuiltIns: 'usage',
corejs: { version: 3, proposals: true },
},
Run Code Online (Sandbox Code Playgroud)
完整的webpack.config.js
'@babel/preset-env',
{
targets: {
browsers: ['>1%'],
},
useBuiltIns: 'usage',
corejs: { version: 3, proposals: true },
},
Run Code Online (Sandbox Code Playgroud) 我正在尝试为一个旧的、未维护的库恢复构建,以便我们可以检查一些更改(或发布一个分支),让它与另一个更新的库(即 Bootstrap 4,但这对这个问题并不重要)一起很好地发挥作用) .
在尝试 vanillanpm i
时,首先我发现了一些地方,因为~
vs^
冲突,库的 package.json 与其依赖项的依赖项发生冲突——依赖项对版本更宽容,所以我将主项目中的一些依赖项从~
改为^
匹配。没什么大不了。
但后来…… npm i
在它最终放弃之前,它陷入了看起来像是正在建造的东西的地方。
在它似乎挂起之前显示的最后一行是这样的:
? ? ? reify:rxjs: timing reifyNode:node_modules/selenium-webdriver Completed in 8604ms
Run Code Online (Sandbox Code Playgroud)
然后,它调用clang
和make
遍地的一段时间(在MacOS大苏尔,我可以看到在终端的标题栏中的命令),最后才重新进入npm i
和呕吐所有的地方。
呕吐开始于:
npm WARN deprecated connect@1.9.2: connect 1.x series is deprecated
npm WARN deprecated core-js@1.2.7: core-js@<3.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine …
Run Code Online (Sandbox Code Playgroud) 我目前正在尝试调试我打包的 Webpack 包。为了提高兼容性,我使用 babel 插件和 corejs 来使使用 async/await 函数成为可能。我还使用'eval-source-map'
源映射在 DevTools 中调试我的代码。该问题出现在 Firefox 和 Chrome DevTools 中。
我想在异步函数中设置断点并想跳过它的行。我这样设置断点:
到目前为止,一切正常。我的断点被识别,并且我能够暂停代码的执行。现在我按下“Step over”来执行该DOM.getInput()
函数并将其结果传递给变量。该函数是一个普通的同步函数。有时候是这样的:
按“Step over”后,断点跳转到函数声明行,当连续多次按“Step over”时,断点停留在函数声明行的前几个步骤中,然后突然结束了node_module文件。调用堆栈表明这些文件在某种程度上是从_asyncToGenerator
. 我认为这与 Babel 异步函数的转换有关。
另外,当异步函数中发生错误时,callStack通常会变得混乱,请参见以下错误消息:
尽管我已经正确定义了源映射,但还是会发生这种情况。
因此,我开始谷歌搜索,看看是否有人有同样的问题并发现了这个 GitHub 问题。基本上,这个问题的OP和我有同样的问题。他写道:“实际行为 - 断点跳转到函数声明行”。有人评论说,对 Babel 使用以下配置可以解决该问题:
{
"env": {
"development": {
"sourceMaps": true,
"retainLines": true
}
},
"presets": [
"es2015"
]
}
Run Code Online (Sandbox Code Playgroud)
我相信,只有这些设置是必要的:
"env": {
"development": {
"sourceMaps": true,
"retainLines": true
}
Run Code Online (Sandbox Code Playgroud)
但是,我想在 Webpack 配置文件中配置 Babel 设置,而不是在.babelrc
. 我可能应该将它们添加到 Babel 加载器的选项对象中的某个位置,但是如何在不删除旧设置的情况下将它们包含在那里?我的当前 …
我遇到了一个问题并发现它是因为 Babel 没有.at
默认填充
根据spec,Array.prototype.at只是第4阶段,我已经将browserslist设置为> 0.2%,其中包括Chrome 86(尚不支持.at)
为什么 Babel 不使用 polyfill .at 呢?
core-js ×10
babeljs ×6
javascript ×4
webpack ×3
polyfills ×2
reactjs ×2
angular ×1
async-await ×1
babel-jest ×1
build ×1
jestjs ×1
lazy-loading ×1
npm ×1
npm-install ×1