创建新的 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.jscore-js/es/object/entries和core-js/features/object/entries在顶部index.jsindex.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