首页 > 解决方案 > ng服务时如何修复Angular替换引导错误

问题描述

我在“ng serve”命令上收到以下错误。我刚刚从 git 中提取了这个,删除了 node_modules 和 package-lock 文件,运行了 npm install 然后 ng serve。我不知道这意味着什么,之前似乎没有其他人遇到过这个问题

Error: TypeError: Cannot read property 'createUniqueName' of undefined
at 
...\Web\Web\node_modules\@ngtools\webpack\src\transformers\replace_bootstrap.js:54:50
 at Array.forEach (<anonymous>)
at standardTransform 
(...\Web\Web\node_modules\@ngtools\webpack\src\transformers\replace_bootstrap.js:32:32)
at transformer (...\Web\Web\node_modules\@ngtools\webpack\src\transformers\make_transform.js:17:25)

replace_bootstrap.js:54:50 看起来像这样:

const idPlatformBrowser = ts.factory.createUniqueName('__NgCli_bootstrap_');

replace_bootstrap.js:32:32 是这样的:

 entryModuleIdentifiers.forEach(entryModuleIdentifier => {
        // Figure out if it's a `platformBrowserDynamic().bootstrapModule(AppModule)` call.
        if (!(entryModuleIdentifier.parent
            && entryModuleIdentifier.parent.kind === ts.SyntaxKind.CallExpression)) {
            return;
        }
        const callExpr = entryModuleIdentifier.parent;
        if (callExpr.expression.kind !== ts.SyntaxKind.PropertyAccessExpression) {
            return;

标签: angularnpmangular-cli

解决方案


你的可能有问题node_moduels,我认为你不应该删除package-lock.json. 尝试再次从 git 中拉取项目并以node_modules这种方式删除,然后安装:

  rm -rf node_modules

   npm install

它将删除您的 node_modules/ 文件夹,然后从 package.json 重新安装依赖项。

以下是关于package-lock.json文件的解释以及为什么应该使用现有文件:提交并且不要删除 package-lock.json

从网站:

一个新的开发人员来了,并从源代码管理中获取了项目。他们使用 npm install 并看到一切正常,因为恢复的软件包与为原始开发人员恢复的软件包版本完全相同。但是现在他们认为“谁提交了 package-lock.json?他们不知道这是多余的吗?” 所以他们将其从源代码控制中删除。三个月后,另一个开发人员来了,并在代码存储库的源代码上运行 npm install,但没有任何效果。根据 package.json 中指定的内容,下载的版本是依赖项的最新版本,或者可能是类似的版本,但具有不同的次要版本,以及开发人员认为最适合该特定版本的依赖项。


推荐阅读