我正在使用最新版本的Node.js,即v8.4.0.但是,在导入和导出语句中,我收到错误:
import express from 'express';
^^^^^^
SyntaxError: Unexpected token import
at createScript (vm.js:74:10)
at Object.runInThisContext (vm.js:116:10)
at Module._compile (module.js:537:28)
at Object.Module._extensions..js (module.js:584:10)
at Module.load (module.js:507:32)
at tryModuleLoad (module.js:470:12)
at Function.Module._load (module.js:462:3)
at Function.Module.runMain (module.js:609:10)
at startup (bootstrap_node.js:158:16)
at bootstrap_node.js:598:3
Run Code Online (Sandbox Code Playgroud)
我应该安装什么Node.js版本才能使用这些ES6代码?
import functions from 'firebase-functions';
import UtilModuler from '@utilModuler'
exports.helloWorld = functions.https.onRequest((request, response) => {
response.send("Hello from Firebase!");
});
Run Code Online (Sandbox Code Playgroud)
从 '@utilModuler' 导入 UtilModuler;^^^^^^^^^^
语法错误:Module._compile 处的意外标识符 (internal/modules/cjs/loader.js:721:23)
注意事项
我正在使用通过导入/导出编写的第三方库(@utilModuler)。可能的解决方法:
问题:有没有办法在谷歌云功能中使用混合导入 cjs 和 esm?(除了我上面描述的选项)
在部署功能中使用类似--experimental-modules会很好
我正在学习node.js,想知道为什么它使用require语法而不是importReact使用的语法。
即
const Validator = require("validator");
VS
import Validator from "validator";
我相信import是es6,但我不认为这可以解释为什么未在节点中使用它。
我正在尝试进行以下导入
import ResClient from 'resclient';
Run Code Online (Sandbox Code Playgroud)
/home/arran/WebstormProjects/untitled1/app.js:2
import ResClient from 'resclient';
^^^^^^^^^
SyntaxError: Unexpected identifier
at new Script (vm.js:85:7)
at createScript (vm.js:266:10)
at Object.runInThisContext (vm.js:314:10)
at Module._compile (internal/modules/cjs/loader.js:698:28)
at Object.Module._extensions..js
(internal/modules/cjs/loader.js:749:10)
at Module.load (internal/modules/cjs/loader.js:630:32)
at tryModuleLoad (internal/modules/cjs/loader.js:570:12)
at Function.Module._load (internal/modules/cjs/loader.js:562:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:801:12)
Run Code Online (Sandbox Code Playgroud)
我已经在全球范围内安装了该模块。
npm list -g | grep resclient
??? resclient@2.0.2
Run Code Online (Sandbox Code Playgroud)我正在使用以下节点版本
$node -v
v11.10.1
Run Code Online (Sandbox Code Playgroud)我看过其他有关此错误的帖子。例如,这里是使用客户端javascript而不是节点的基于浏览器的问题。我是一个新手节点,所以无论基础如何,都希望对它有所指点。
我需要从内存变量中导入JavaScript模块。我知道可以使用SystemJS和Webpack来完成。
但是我在任何地方都找不到合适的工作示例或文档。这些文档主要讨论动态导入.js文件。
基本上我需要像下面那样导入模块
let moduleData = "export function doSomething(string) { return string + '-done'; };"
//Need code to import that moduleData into memory
Run Code Online (Sandbox Code Playgroud)
如果有人可以指向文档,那将是很棒的
我正在将一些代码重构为 ES6 导入模式。我正在使用node 13.7.0.
我的package.json文件"type": "module"在顶部,但是当我运行我的脚本时,我得到
错误:找不到从 /Users/otaviobonder/WebstormProjects/newTE/back/src/server.js 导入的模块 /Users/otaviobonder/WebstormProjects/newTE/back/src/lib/Queue
我运行脚本 node --require dotenv/config src/server.js
我不明白为什么。我queue以import Queue from "./lib/Queue";in导入server.js,而我的Queue.js文件有一个默认导出:
import Queue from "bull";
import redisConfig from "../config/redis";
import * as Sentry from "@sentry/node";
import * as jobs from "../jobs";
Sentry.init({ dsn: process.env.SENTRY_DSN });
const queues = Object.values(jobs).map(job => ({
bull: new Queue(job.key, { redis: redisConfig }),
name: job.key,
handle: job.handle,
options: job.options
}));
export default { …Run Code Online (Sandbox Code Playgroud) 我正在使用Node.js编写应用程序。具体来说,我正在使用Node v10.3.0。该应用程序位于的目录中./my-module-console/index.js。这个应用程式的的package.json档案位于./my-module-console/package.json。此应用程序引用了中定义的类./my-module/items/。应该注意的是,它my-module代表了自己的包装。该软件包在中定义./my-module/package.json。index.js中的代码如下所示:
'use strict';
import { Item } from '../my-module/items/item.js';
async function entry() {
let item = await Item.FindById(1);
console.log(item);
}
entry();
Run Code Online (Sandbox Code Playgroud)
当我尝试运行此命令时,出现以下错误:
import { Item } from '../my-module/items/item.js';
^
SyntaxError: Unexpected token {
Run Code Online (Sandbox Code Playgroud)
我的进口货单有什么问题?在我看来,这是正确的。我误会了吗?
item.js
class Item {
constructor() {}
async static FindById(id) {
console.log('finding item by id: ' + id);
}
};
module.exports = Item;
Run Code Online (Sandbox Code Playgroud)
谢谢!
在 Nodejs 中,语句import Obj from 'module_1'与const Obj = require('module_1')? 这是 Obj 应该是构造函数的时候。我想知道,因为使用 import 语句似乎对我不起作用,所以我想知道是否有其他的编写方式。
我有点新打字稿,我写了一个 SDK,我的 .tsconfig 看起来有点像这样
{
"compilerOptions": {
"moduleResolution": "node",
"experimentalDecorators": true,
"module": "esnext",
"noImplicitReturns": true,
"noUnusedLocals": true,
"sourceMap": true,
"strict": true,
"target": "es2015",
"resolveJsonModule": true,
"esModuleInterop": true,
"noImplicitAny": false,
"outDir": "./lib",
},
"compileOnSave": true,
"include": [
"src"
],
"exclude": ["node_modules"]
}
Run Code Online (Sandbox Code Playgroud)
我使用tsc命令构建它。现在我创建了 localtest.js 文件,我在其中导入了这个文件
import getWorkspace from './lib/index'
const randomFunc = async () => {
// some code
}
randomFunc()
Run Code Online (Sandbox Code Playgroud)
然后在我的终端中使用以下命令运行它node localtest.js会引发以下错误
function (exports, require, module, __filename, __dirname) { import getWorkspace from './lib/index'
^^^^^^^^^^^^
SyntaxError: Unexpected …Run Code Online (Sandbox Code Playgroud) 我的应用程序有一个文件,它创建一个带有拦截器的 axios 实例,然后 api 使用该实例进行调用。问题是当我尝试为此 api 编写测试时,它失败并出现TypeError: (0 , _axios.default) is not a function错误。
下面是创建 axios 实例的 poc:
const axiosInstance = axios.create({
timeout: 20000,
paramsSerializer(params) {
return qs.stringify(params, { indices: false });
},
});
axiosInstance.interceptors.request.use((config) => {
if (process.env.NODE_ENV === 'development') {
logger.info(`Request sent to ${config.url}`, config.params);
}
return config;
}, (error) => Promise.reject(error));
axiosInstance.interceptors.response.use((response) => {
if (process.env.NODE_ENV === 'development') {
logger.info(`Response from ${response.config.url}`, response.data);
}
return parseBody(response);
}, (error) => parseError(error));
export default axiosInstance;
Run Code Online (Sandbox Code Playgroud)
这是使用 axios …
node.js ×9
javascript ×7
ecmascript-6 ×2
typescript ×2
angular ×1
axios ×1
es6-modules ×1
import ×1
jestjs ×1
systemjs ×1
webpack ×1