注意:这个问题可能看起来像一个重复的问题,但它不是/尝试了所有的修复,但仍然不起作用!(如果你读了这个问题,你会知道为什么)
我有一个Firebase函数项目,我的文件夹结构是这样的,
- functions
- index.js
- firebase-dubug.log
- config.json
- ... bunch of other files and folder which aren't necessary.
- .firebaserc
- firebase.json
所以,当我运行这个命令时,
firebase deploy
它试图部署,但在控制台中显示了这一点,
=== Deploying to 'project-id [hidden]'...
i deploying functions, hosting
i functions: ensuring required API cloudfunctions.googleapis.com is enabled...
i functions: ensuring required API cloudbuild.googleapis.com is enabled...
i functions: ensuring required API artifactregistry.googleapis.com is enabled...
+ functions: required API cloudfunctions.googleapis.com is enabled
+ functions: required API cloudbuild.googleapis.com is enabled
+ functions: required API artifactregistry.googleapis.com is enabled
i functions: preparing functions directory for uploading...
i functions: packaged functions (2.4 MB) for uploading
+ functions: functions folder uploaded successfully
i hosting[pq-store-dc918]: beginning deploy...
i hosting[pq-store-dc918]: found 29 files in functions/build
+ hosting[pq-store-dc918]: file upload complete
i functions: updating Node.js 16 function firebaseApp(us-central1)...
Functions deploy had errors with the following functions:
firebaseApp(us-central1)
i functions: cleaning up build files...
Error: There was an error deploying functions
显然,这个错误没有帮助,所以我进入firebase-dubug.log寻找问题的确切原因,发现了这个,
{
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"status": {
"code": 3,
"message": "Build failed: (node:98) Warning: To load an ES module, set \"type\": \"module\" in the package.json or use the .mjs extension.\n(Use `node --trace-warnings ...` to show where the warning was created)\n/workspace/index.js:1\nimport functions from 'firebase-functions'\n^^^^^^\n\nSyntaxError: Cannot use import statement outside a module\n at Object.compileFunction (node:vm:352:18)\n at wrapSafe (node:internal/modules/cjs/loader:1031:15)\n at checkSyntax (node:internal/main/check_syntax:66:3)\n at node:internal/main/check_syntax:39:3; Error ID: d984e68f"
},
"authenticationInfo": {
"principalEmail": "[email hidden]"
},
"serviceName": "cloudfunctions.googleapis.com",
"methodName": "google.cloud.functions.v1.CloudFunctionsService.UpdateFunction",
"resourceName": "projects/[project-id, hidden]/locations/us-central1/functions/firebaseApp"
}
所以,我认为这个错误是由于没有把“类型”:“模块”放在package.json中,使用导入/导出代替了要求(),所以我去了package.json函数文件夹,并添加了类型:模块,类似这样的东西这个,
职能/package.json,
{
"name": "functions",
"description": "Cloud Functions for Firebase",
"type": "module", // I already have this in my package.json
"scripts": {
"serve": "firebase emulators:start --only functions",
"shell": "firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"engines": {
"node": "16"
},
"main": "index.js",
"dependencies": {
// ...dependencies
},
"private": true
}
我的index.js看起来像这样,
import functions from 'firebase-functions' // the error is caused here
import express from 'express'
// ...code which are not required for this issue :)
// Listening to port
app.listen(port, () => console.log(`Listening to port ${port}`))
// Configuring firebase
export const firebaseApp = functions.https.onRequest(app)
结论:我有类型:模块在我的package.json,但仍然得到“不能使用导入”错误。我尝试重新部署它,并使用Firebase外壳和一切工作正常,但不能使它部署。
还有一件事:我不想将它们全部转换为require(),因为这将花费永远的时间,因为这个项目上有200多个文件!
尝试使用要求代替。
const functions = require('firebase-functions')
试图将用户模型中的“uuid”作为
我有一本书。节点js(07.10.19版本的node.js的最新版本)应用程序中的ts文件,带有导入节点模块而无默认导出。我使用这种结构:
我有一个ApolloServer项目给我带来了麻烦,所以我想我可能会更新它,并在使用最新的巴别塔时遇到问题。我的“index.js”是: 当我运行它时,我得到了错误 首先,我试图做一些事情来说服TPTB*这是一个模块(没有成功)。所以我把“导入”改成了“要求”,这就奏效了。 但是现在我在其他文件中有大约24个“导入”给我同样的错误。 *我确信我的问题的根源是我甚至不确定是什么在抱怨这个问题。我有点
在测试其中一个功能时,我遇到了这种错误。到底是什么问题? /用户/user/websprojects/hsu/src/path finding/path finding。spec.js:1从'chai'导入{expect}^^^^^^ 语法错误:无法在WrapSafe(节点:内部/模块/cjs/加载器: 1018:16)的模块外使用导入语句。_compile(节点:内部/模块/cjs/加载器: 1
提前感谢您的帮助。 这个问题似乎已经在其他地方被提出和回答,但我相信我已经尝试了所有这些解决方案,但没有取得真正的进展。 我试图为webdriverIO创建一个自定义记者。然而,当所有导入都运行时,我得到以下错误: 无法在模块外使用导入语句 如果我试图执行文件顶部的导入语句,则会在导入WebdriverTestrasER行上出现上述错误。我可以通过使用要求来解决这个问题,但是在从@wdio/记者导
我得到了这个错误时,试图从另一个javascript文件导入。这是我第一次尝试这样的东西。主文件是,模块文件是。 main.js: 摩登派青年js: 我怎样才能解决这个问题?谢谢