Firebase Cloud Functions TypeScript error: Unknown file extension ".ts" for /workspace/src/index.ts - google-cloud-functions

When I run firebase deploy --only functions I get this error:
Build failed: node:internal/errors:477
ErrorCaptureStackTrace(err);
^
TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for /workspace/src/index.ts
at new NodeError (node:internal/errors:387:5)
at Object.getFileProtocolModuleFormat [as file:] (node:internal/modules/esm/get_format:76:11)
at defaultGetFormat (node:internal/modules/esm/get_format:118:38)
at checkSyntax (node:internal/main/check_syntax:57:26) {
code: 'ERR_UNKNOWN_FILE_EXTENSION'
}; Error ID: 037e0eb0
Functions deploy had errors with the following functions:
triggerMe(us-central1)
I'm also getting an error in the Firebase Console showing a red triangle next to this function, saying Function deployment failed. Please try again.
I ran npm outdated and npm update, everything is the latest version.
Here's my index.ts file:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.triggerMe = functions.firestore.document('Triggers/{docId}').onWrite((data, context) => {
console.log("Trigger warning!")
console.log(data.message);
return 30
});
I was getting errors about the data and context parameters being implicit any type so I added "noImplicitAny": false, to tsconfig.json:
{
"compilerOptions": {
"module": "commonjs",
"noImplicitReturns": true,
"noUnusedLocals": true,
"outDir": "lib",
"sourceMap": true,
"strict": true,
"noImplicitAny": false,
"target": "es2017"
},
"compileOnSave": true,
"include": [
"src"
]
}
I also tried switching strict to false. This didn't help.
In my environments.ts file I added useEmulators: true. I get this error whether this property is set to true or false.
Here's my functions/package.json:
{
"name": "functions",
"scripts": {
"build": "tsc",
"build:watch": "tsc --watch",
"serve": "npm run build && firebase emulators:start --only functions",
"shell": "npm run build && firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"engines": {
"node": "16"
},
"main": "src/index.ts",
"dependencies": {
"firebase-admin": "^10.2.0",
"firebase-functions": "^3.21.0"
},
"devDependencies": {
"typescript": "^4.8.4"
},
"private": true
}
And the other package.json file:
{
"name": "triggerable-functions-tutorial",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"watch": "ng build --watch --configuration development",
"test": "ng test"
},
"private": true,
"dependencies": {
"#angular/animations": "^14.2.0",
"#angular/common": "^14.2.0",
"#angular/compiler": "^14.2.0",
"#angular/core": "^14.2.0",
"#angular/fire": "^7.4.1",
"#angular/forms": "^14.2.0",
"#angular/platform-browser": "^14.2.0",
"#angular/platform-browser-dynamic": "^14.2.0",
"#angular/router": "^14.2.0",
"firebase": "^9.12.1",
"firebase-admin": "^11.2.0",
"firebase-functions": "^4.0.1",
"rxjs": "~7.5.0",
"tslib": "^2.3.0",
"zone.js": "~0.11.4"
},
"devDependencies": {
"#angular-devkit/build-angular": "^14.2.6",
"#angular/cli": "~14.2.6",
"#angular/compiler-cli": "^14.2.0",
"#types/jasmine": "~4.3.0",
"jasmine-core": "~4.4.0",
"karma": "~6.4.0",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage": "~2.2.0",
"karma-jasmine": "~5.1.0",
"karma-jasmine-html-reporter": "~2.0.0",
"typescript": "~4.8.4"
}
}
And firebase.json:
{
"firestore": {
"rules": "firestore.rules",
"indexes": "firestore.indexes.json"
},
"functions": [
{
"source": "functions",
"codebase": "default",
"ignore": [
"node_modules",
".git",
"firebase-debug.log",
"firebase-debug.*.log"
],
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run build"
]
}
],
"emulators": {
"functions": {
"port": 5001
},
"firestore": {
"port": 8080
},
"ui": {
"enabled": true
},
"singleProjectMode": true
}
}

Try the following solution:
Remove the "type": "module" from the package.json if added, it looks like you don't have it.
In tsconfig.json, under the compilerOptions, set the "moduleResolution": "Node".
Like so:
{
"compilerOptions": {
"module": "CommonJS",
"moduleResolution": "Node"
"noImplicitReturns": true,
"noUnusedLocals": true,
"outDir": "lib",
"sourceMap": true,
"strict": true,
"noImplicitAny": false,
"target": "es2017"
},
"compileOnSave": true,
"include": [
"src"
]
}
Source: Can't run my Node.js Typescript project TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for /app/src/App.ts

I added "type": "module", to package.json. This got rid of the ERR_UNKNOWN_FILE_EXTENSION error. I also upgraded the dependencies to the latest versions.
{
"name": "functions",
"type": "module",
"scripts": {
"build": "tsc",
"build:watch": "tsc --watch",
"serve": "npm run build && firebase emulators:start --only functions",
"shell": "npm run build && firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"engines": {
"node": "16"
},
"main": "src/index.ts",
"dependencies": {
"firebase-admin": "^11.2.0",
"firebase-functions": "^4.0.1"
},
"devDependencies": {
"typescript": "^4.8.4"
},
"private": true
}
I now get this error:
Function failed on loading user code. This is likely due to a bug in the user code.
I changed (data, context) to (data: any, context: any) and that error was replaced with this error:
SyntaxError: Unexpected token ':'
I have "noImplicitAny": false, in tsconfig.json. Changing that to true throws the expected error (indicating that the property is working):
Parameter 'data' implicitly has an 'any' type.
I removed noImplicitAny and set strict to false. This threw this error:
Function failed on loading user code. This is likely due to a bug in the user code.
I'm giving up and using JavaScript.

Related

Why my scss/sass is not working anymore suddenly?

I just have some of problem here at my scss files at any parts of my folder wherein it doesn't work anymore and I don't understand why..I tried to research it but I couldn't find the same error that I have?
Its on my react or any normal html in my react I already install it my package.json
{
"name": "my-messages",
"version": "0.1.0",
"private": true,
"dependencies": {
"#reduxjs/toolkit": "^1.8.6",
"#testing-library/jest-dom": "^5.16.5",
"#testing-library/react": "^13.4.0",
"#testing-library/user-event": "^13.5.0",
"bootstrap": "^5.2.2",
"emoji-picker-react": "^4.4.5",
"firebase": "^9.12.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-redux": "^8.0.4",
"react-router-dom": "^6.4.2",
"react-scripts": "5.0.1",
"redux": "^4.2.0",
"sass": "^1.55.0",
"uuid": "^9.0.0",
"web-vitals": "^2.1.4"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}
And here in the image as you see its not working anymore..
I didn't touch anything that changes on my terminal or does the SCSS changes???
Here is my bottom right corner thing
Maybe the location of CSS file is changed.
Invalid CSS format.
Try a different browser.

Error: ESLint configuration in --config is invalid

I am facing the error while using the command npm run start:
Error: ESLint configuration in --config is invalid:- Unexpected top-level property "compilerOptions".
I cannot figure out the cause of the error. I tried adding root:true and many other solutions that i stumbled upon.
My package.json File :
{
"name": "discord-bot",
"version": "1.0.0",
"description": "",
"main": "dist/WebServer.js",
"scripts": {
"prebuild": "eslint . --ext .js,.jsx,.ts,.tsx -c tsconfig.json --fix",
"lint": "eslint . --ext .ts,.tsx",
"lint-and-fix": "eslint . --ext .ts,.tsx --fix",
"build": "tsc",
"prestart": "npm run build",
"start": "node .",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Anup",
"license": "ISC",
"dependencies": {
"express": "^4.17.2"
},
"devDependencies": {
"#types/express": "^4.17.13",
"#types/node": "^17.0.9",
"#typescript-eslint/eslint-plugin": "^5.10.0",
"#typescript-eslint/parser": "^5.10.0",
"eslint": "^8.7.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-prettier": "^4.0.0",
"typescript": "^4.5.4"
}
}
My eslintric.js file :
module.exports = {
root: true,
parser: "#typescript-eslint/parser",
parserOptions: {
tsconfigRootDir: __dirname,
project: ["./tsconfig.json"],
},
plugins: ["#typescript-eslint"],
env: {
node: true,
jest: true,
},
ignorePatterns: ['.eslintrc.js'],
extends: [
"eslint:recommended",
"plugin:#typescript-eslint/recommended",
"plugin:#typescript-eslint/recommended-requiring-type-checking",
"prettier",
],
};
My tsconfig.json File :
{
"compilerOptions": {
"module": "commonjs",
"esModuleInterop": true,
"target": "es6",
"noImplicitAny": true,
"moduleResolution": "node",
"sourceMap": true,
"outDir": "dist",
"baseUrl": ".",
"paths": {
"*": ["node_modules/*"]
}
},
"include": ["Web/*"]
}
When I run the npm run start without the prebuild in the script my application works.

SyntaxError: Unexpected token import when running test with Jest [REACT]

I am trying to build some tests that i have on my code, but i am not able to run it because it does not recognize the import statements.
when I run "npm test" to check my tests, i receive this error:
({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){import React from 'react'
^^^^^^
SyntaxError: Unexpected token import
at ScriptTransformer._transformAndBuildScript (node_modules/jest-cli/node_modules/jest-runtime/build/ScriptTransformer.js:289:17)
at <anonymous>
These are my .babelrc and package.json files:
package.json:
{
"name": "my-app",
"version": "0.1.0",
"private": true,
"dependencies": {
"dev": "^0.1.3",
"react": "^15.6.1",
"react-google-button": "^0.3.0",
"react-google-login": "^2.9.2",
"react-google-login-component": "^0.7.0",
"react-native-google-signin": "^0.10.0",
"react-redirect": "^1.0.0",
"react-router-dom": "^4.1.2",
"react-scripts": "0.9.5"
},
"devDependencies": {
"babel-jest": "^20.0.3",
"babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
"enzyme": "^2.9.1",
"enzyme-to-json": "^1.5.1",
"identity-obj-proxy": "^3.0.0",
"jest-cli": "^20.0.4",
"react-addons-test-utils": "^15.6.0",
"react-dom": "^15.6.1"
},
"jest": {
"transform": {}
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "jest",
"eject": "react-scripts eject"
}
}
.babelrc:
{
"plugins":["transform-react-jsx"],
"presets": ["es2015", "react"],
"env": {
"test": {
"plugins": ["transform-es215-modules-commonjs"]
}
}
}

ionic fails to load html and css of a component in an npm package

I am trying to create a npm package that will have a angular2 dummy component i.e. a .ts file which references its .css file and .html file.
When I install this package in an angular project, it works fine referencing the relative paths of html and css files.
However the same fails to load html and css files in an IONIC2 project.
I believed ionic2 is made using angular2 and this should have worked.
My tsconfig.json looks like -
{
"compilerOptions": {
"baseUrl": "",
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": [
"es2015",
"dom"
],
"noImplicitAny": true,
"suppressImplicitAnyIndexErrors": true,
"outDir": "../dist",
"declarationDir": "../dist",
"declaration": true
},
"compileOnSave": true,
"exclude": [
"node_modules",
"dist"
] }
and package.json -
{
"name": "componentlibrarytest",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"build": "tsc -p src/",
"build:watch": "tsc -p src/ -w",
"prestart": "npm run build",
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [
"test components"
],
"private": true,
"devDependencies": {
"#angular/common": "^2.4.0",
"#angular/compiler": "^2.4.0",
"#angular/core": "^2.4.0",
"#angular/forms": "^2.4.0",
"#angular/http": "^2.4.0",
"#angular/platform-browser": "^2.4.0",
"#angular/platform-browser-dynamic": "^2.4.0",
"core-js": "^2.4.1",
"rxjs": "^5.1.0",
"zone.js": "^0.7.6",
"typescript": "~2.3.2"
},
"author": "XYZ",
"license": "ISC"
}
I guess I am missing something to bundle up html and css files. Do i need to use webpack or something?

Asp.Net Core Angular 6 Error : The NPM script 'start' exited without indicating that the Angular CLI was listening for requests

Problem
I create asp.net core with angular 6 application in visual studio 2017 and application is working locally perfectly fine. but when I tried to deploy it to cloud it shows me this error.
AggregateException: One or more errors occurred. (One or more errors occurred. (The NPM script 'start' exited without indicating that the Angular CLI was listening for requests. The error output was: 'npm' is not recognized as an internal or external command
I already searched this error but my error remains after applying this answer
other solution
angular.json
{
"$schema": "./node_modules/#angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"ClientApp": {
"root": "",
"sourceRoot": "src",
"projectType": "application",
"prefix": "app",
"schematics": {},
"architect": {
"build": {
"builder": "#angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/ClientApp",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "src/tsconfig.app.json",
"assets": [
"src/favicon.ico",
"src/assets"
],
"styles": [
"src/styles.css"
],
"scripts": [
"node_modules/jquery/dist/jquery.min.js",
"src/assets/js/azure-storage.blob.min.js"
]
},
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true
}
}
},
"serve": {
"builder": "#angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "ClientApp:build"
},
"configurations": {
"production": {
"browserTarget": "ClientApp:build:production"
}
}
},
"extract-i18n": {
"builder": "#angular-devkit/build-angular:extract-i18n",
"options": {
"browserTarget": "ClientApp:build"
}
},
"test": {
"builder": "#angular-devkit/build-angular:karma",
"options": {
"main": "src/test.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "src/tsconfig.spec.json",
"karmaConfig": "src/karma.conf.js",
"styles": [
"src/styles.css"
],
"scripts": [
"node_modules/jquery/dist/jquery.min.js",
"src/assets/js/azure-storage.blob.min.js"
],
"assets": [
"src/favicon.ico",
"src/assets"
]
}
},
"lint": {
"builder": "#angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [
"src/tsconfig.app.json",
"src/tsconfig.spec.json"
],
"exclude": [
"**/node_modules/**"
]
}
}
}
},
"ClientApp-e2e": {
"root": "e2e/",
"projectType": "application",
"architect": {
"e2e": {
"builder": "#angular-devkit/build-angular:protractor",
"options": {
"protractorConfig": "e2e/protractor.conf.js",
"devServerTarget": "ClientApp:serve"
},
"configurations": {
"production": {
"devServerTarget": "ClientApp:serve:production"
}
}
},
"lint": {
"builder": "#angular-devkit/build-angular:tslint",
"options": {
"tsConfig": "e2e/tsconfig.e2e.json",
"exclude": [
"**/node_modules/**"
]
}
}
}
}
},
"defaultProject": "ClientApp"
}
Package.json
{
"name": "client-app",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"#angular/animations": "^6.1.0",
"#angular/cdk": "^6.4.5",
"#angular/common": "^6.1.0",
"#angular/compiler": "^6.1.0",
"#angular/core": "^6.1.0",
"#angular/forms": "^6.1.0",
"#angular/http": "^6.1.0",
"#angular/platform-browser": "^6.1.0",
"#angular/platform-browser-dynamic": "^6.1.0",
"#angular/router": "^6.1.0",
"ngx-toastr": "^8.7.3",
"#angular/material": "^6.0.1",
"firebase": "^5.4.0",
"angularfire2": "^5.0.0-rc.11",
"core-js": "^2.5.4",
"rxjs": "^6.0.0",
"devextreme": "^18.1.4",
"devextreme-angular": "^18.1.4",
"hammerjs": "^2.0.8",
"jquery": "^3.3.1",
"jszip": "^3.1.5",
"ng2-file-upload": "^1.3.0",
"time-ago-pipe": "^1.3.2",
"angular-select2-component": "^1.1.4",
"angular2-multiselect-dropdown": "^2.9.0",
"angular4-carousel": "^3.1.8",
"zone.js": "~0.8.26"
},
"devDependencies": {
"#angular-devkit/build-angular": "~0.7.0",
"#angular/cli": "^6.1.5",
"#angular/compiler-cli": "^6.1.0",
"#angular/language-service": "^6.1.0",
"#types/jasmine": "~2.8.6",
"#types/jasminewd2": "~2.0.3",
"#types/node": "~8.9.4",
"codelyzer": "~4.2.1",
"jasmine-core": "~2.99.1",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~1.7.1",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~2.0.0",
"karma-jasmine": "~1.1.1",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.4.0",
"ts-node": "~5.0.1",
"tslint": "~5.9.1",
"typescript": "~2.7.2"
}
}
image
For me, problem was - IIS selected in Launch. (Project Properties - > Debug Tab).
After selecting IIS Express solved the issue for me.
Your problem is probably your "ASPNETCORE_ENVIRONMENT" variable in Development enviroment. If you look your Startup.cs file, you will find this lines:
if (env.IsDevelopment())
{
spa.UseAngularCliServer(npmScript: "start");
}
When you upload that code to a server with the developmen variable, the angular CLI cannot be launched a second time, so it crashes and gives that error message. You have 2 options, or you delete this:
spa.UseAngularCliServer(npmScript: "start");
or you can substitute it for:
#if DEBUG
spa.UseAngularCliServer(npmScript: "start");
#endif
I recommend this second option, since if you use the first one, the application will stop working locally.