在Angular 5 CLI项目中编译JavaScript文件

在Angular 5 CLI项目中编译JavaScript文件,javascript,angular,angular5,tsconfig,Javascript,Angular,Angular5,Tsconfig,我在Angular 5.0.0 CLI项目中编译(包括)JavaScript文件时遇到问题 我正在执行以下步骤: 创建一个空的CLI(1.6.2)项目(ng new test2)。项目运行良好 修改tsconfig.json以包含行allowJs“:true,以编译/绑定Javascript文件 在app文件夹中创建一个简单的Javascript文件(例如test.js,content i=1;) 生成在Angular 5中失败,错误如下 角5误差 "ERROR in error TS505

我在Angular 5.0.0 CLI项目中编译(包括)JavaScript文件时遇到问题

我正在执行以下步骤:

  • 创建一个空的CLI(1.6.2)项目(ng new test2)。项目运行良好
  • 修改tsconfig.json以包含行allowJs“:true,以编译/绑定Javascript文件
  • 在app文件夹中创建一个简单的Javascript文件(例如test.js,content i=1;)
  • 生成在Angular 5中失败,错误如下
角5误差

"ERROR in error TS5055: Cannot write file 
'/Users/user/Documents/workspace/test2/src/app/test.js' because it would 
overwrite input file.  Adding a tsconfig.json file will help organize 
projects that contain both TypeScript and JavaScript files. Learn more at 
https://aka.ms/tsconfig."
在Angular 4中,JS文件被编译到outDir参数中指定的输出目录,并包含在最终的包中

ng——版本给出了以下内容:

Angular CLI: 1.6.2
Node: 6.10.0
OS: darwin x64
Angular: 5.1.2
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router

@angular/cli: 1.6.2
@angular-devkit/build-optimizer: 0.0.36
@angular-devkit/core: 0.0.22
@angular-devkit/schematics: 0.0.42
@ngtools/json-schema: 1.1.0
@ngtools/webpack: 1.9.2
@schematics/angular: 0.1.11
@schematics/schematics: 0.0.11
typescript: 2.4.2
webpack: 3.10.0
outDir在tsconfig.json中设置为“/dist/out tsc”,在tsconfig.app.json中设置为“./out tsc/app”

任何人的想法。 当做
Dave

提供的错误消息中存在错误

错误TS5055中的错误:无法写入文件
'***.js'
,因为它会 覆盖输入文件。
添加tsconfig.json文件将有助于组织 同时包含TypeScript和JavaScript文件的项目。了解更多信息,请访问 "

生成过程似乎正在尝试将
*.ts
文件编译为
*.js
文件,但无法写入该文件,因为该文件已存在

在构建过程之前,只需首先从可分发目录中清除构建文件


建议
似乎您正在将
*.js
文件直接转储到
src/
中,这可能会造成混乱和不受欢迎


更好的解决方案是生成一个包含编译的构建文件的
/dist
目录。

我最近遇到了这个问题,我很高兴地报告,我认为我有一个解决方案

开始:

  • 将Angular升级至最新版本(
    5.1
  • 将您的TypeScript升级到受支持的最新版本(
    4.*
    ,在撰写本文时,不是
    5.*
  • 配置文件中可能需要
    allowJs:true
  • 运行
    ngservice--aot
    ngbuild--watch=auto--aot
    您应该会看到上面的错误,并且无法访问您的站点

    打开应用程序中的一个.ts文件,进行小更改(例如添加一个空格),然后保存该文件

    你的应用程序应该编译


    (据我所知,
    --watch=auto
    --aot
    标志对于此解决方案至关重要)

    我针对angular cli对此提出了一个错误 这是固定的