You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Repro steps. Was this an app that wasn't created using the CLI? What change did you
do on your code? etc.
$ ng new my-project
$ cd my-project
$ ng test
The log given by the failure. Normally this include a stack trace and some
more information.
Console log:
15 09 2016 10:04:15.346:INFO [karma]: Karma v1.2.0 server started at http://localhost:9876/
15 09 2016 10:04:15.346:INFO [launcher]: Launching browser Chrome with unlimited concurrency
15 09 2016 10:04:15.369:INFO [launcher]: Starting browser Chrome
15 09 2016 10:04:16.826:INFO [Chrome 55.0.2859 (Windows 10 0.0.0)]: Connected on socket /#xqAYMg_-UhayckFyAAAA with id 24060829
Chrome 55.0.2859 (Windows 10 0.0.0): Executed 0 of 0 ERROR (0.002 secs / 0 secs)
Chrome console:
debug.html:1 Refused to execute script from 'http://localhost:9876/base/src/test.ts' because its MIME type ('video/mp2t') is not executable.
debug.js:6 Skipped 0 tests
Mention any other details that might be useful.
I think this was probably caused by: https://codereview.chromium.org/2294283002 - is this a Chrome or angular-cli issue? Obviously .ts is a video container format in addition to the typescript format - so I assume that Chrome is blocking it because it thinks it's a video file rather than a typescript file.
ng test worked fine in previous (non-webpack) betas with this version of Chrome, assumedly because test.ts was not injected into the runner.
Looking at the network tab in the chrome dev tools, it looks like test.ts was served as a video file - so it's not Chrome's fault. The full response headers for the file were:
I would guess that the .ts file should not have been served at all, but a compiled / transpired .js file. So somewhere the compilation of the .ts file is not happening. I've reported this exact issue, but have had no responses to my report. #2031
Note that the tests work fine in both current release (v53) and beta (v54) versions of Chrome, in addition to current release/beta/dev versions of Firefox.
I figured out a work around. In the karma.conf.js file, add:
mime: {
'text/x-typescript': ['ts','tsx']
},
This tells the Karma server to serve the .ts files with a text/x-typescript mime type. That seems to make it work.
Reacted by Michal Vanko, Adam Duren, Denilson Rodrigues, Sam Bleckley, Christian Rackerseder, Yerkebulan, Bogusław Skrzypkowiak, Exequiel Ceasar Navarrete, Vlad Sabev, ernaone and 136 more
Reacted by Vlad Sabev, Peng, Chad Brockman, Jonathan Samples, Alex Malkevich, Abdulhaq Emhemmed, Samuel Béliveau, Emilio Martinez, Daniel Shafer, Jonas Krispin and 44 more
Reacted by jeenn
Reacted by Vlad Sabev, Peng, Chad Brockman, Jonathan Samples, Abdulhaq Emhemmed, Daniel Shafer, Jonas Krispin, Patrick Williams, Raviteja Valluri, Tanguy Vaessen and 44 more
I can verify that although it works on Chrome 53, it does show the Content-Type as video:
The file seems to be served as .ts but containing only ES5 code. This might be a problem with how Karma serves files that undergo processing... @juliemr could you weigh in perhaps?
but what's if I don't use karma, however, such errors in *.ts files like MIME type is not executable are exists too
I'm using Ionic v1 with cordova and angular
Activity
ianjoneill commentedon Sep 15, 2016
Looking at the network tab in the chrome dev tools, it looks like test.ts was served as a video file - so it's not Chrome's fault. The full response headers for the file were:
jtsom commentedon Sep 15, 2016
I would guess that the .ts file should not have been served at all, but a compiled / transpired .js file. So somewhere the compilation of the .ts file is not happening. I've reported this exact issue, but have had no responses to my report. #2031
ianjoneill commentedon Sep 15, 2016
Ah - I didn't see that - the initial description did not have anything to do with the issue - probably why I missed it.
ianjoneill commentedon Sep 15, 2016
Note that the tests work fine in both current release (v53) and beta (v54) versions of Chrome, in addition to current release/beta/dev versions of Firefox.
jtsom commentedon Sep 15, 2016
Having the same problem on Chrome on OS X, Version 55.0.2859.0 dev (64-bit)
I don't see the error in Safari, (Safari Technology Preview Release 12 (Safari 9.1.2, WebKit 11603.1.3)) and Safari (Version 9.1.3 (11601.7.8))
So, it does look like a Chrome issue.
jtsom commentedon Sep 15, 2016
I figured out a work around. In the karma.conf.js file, add:
This tells the Karma server to serve the .ts files with a text/x-typescript mime type. That seems to make it work.
ianjoneill commentedon Sep 15, 2016
Seems worthy of a pull-request to me.
I'll test it out your proposed patch tomorrow at around UTC 8:00 and report back - but reading over the karma docs, it looks like it should work 😃.
ianjoneill commentedon Sep 16, 2016
Your fix works great!
jtsom commentedon Sep 16, 2016
Cool! So if I can figure the steps to make a pull request I'll do it :)
Fix(config):Add MIME type to work around Chrome > 54 problem (angular…
filipesilva commentedon Sep 21, 2016
I can verify that although it works on Chrome 53, it does show the Content-Type as video:

The file seems to be served as
.tsbut containing only ES5 code. This might be a problem with how Karma serves files that undergo processing... @juliemr could you weigh in perhaps?juliemr commentedon Sep 21, 2016
@zzo do you have any insights here?
fix(test):add ts MIME type
set mime type for karma angular/angular-cli#2125 (comment)
Fix MIME type ('text/x-typescript')
fix issue : angular/angular-cli#2125 (comment)
change to specify mime type for chrome dev v55 compatibility. see ang…
fix(test):add ts MIME type
fixes `npm test` due to a bug in chrome, see angular/angular-cli#2125
ducin commentedon May 12, 2017
It's not an issue of
angular-cli, it's an issue of typescript/karma.I'm not using angular-cli, but this solution worked for me as well.
dbeylkhanov commentedon Sep 4, 2017
@jtsom
but what's if I don't use karma, however, such errors in *.ts files like MIME type is not executable are exists too
I'm using Ionic v1 with cordova and angular
bobbyg603 commentedon Sep 20, 2017
FWIW we got this error when moving test files from one directory to another and not updating/adding an entry in the preprocessors array.
In other words we updated this:
preprocessors: { './src/*.ts': ['karma-typescript'] },to this:
preprocessors: { './src/*.ts': ['karma-typescript'], './test/*.ts': ['karma-typescript'] },and the error went away.
Xesenix commentedon Dec 1, 2017
I had this error for running webpack with awesome-typescript-loader and karma mime type option in karma conf fixed it:
and webpack config:
typescript config:
angular-automatic-lock-bot commentedon Sep 7, 2019
This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.
Read more about our automatic conversation locking policy.
This action has been performed automatically by a bot.
fix(test):add ts MIME type