相关疑难解决方法(0)

如何在节点中使用es6导入?

我试图在节点中获取es6导入的挂起,并尝试使用此示例中提供的语法:

Cheatsheet链接:https://hackernoon.com/import-export-default-require-commandjs-javascript-nodejs-es6-vs-cheatsheet-different-tutorial-example-5a321738b50f

我正在查看支持表:http://node.green/,但无法找到支持新导入语句的版本(我尝试查找文本import/require)我目前正在运行节点8.1. 2并且还认为,由于cheatsheet是指.js文件,它应该与.js文件一起使用.

当我运行代码时(取自cheatsheet的第一个例子):

import { square, diag } from 'lib';
Run Code Online (Sandbox Code Playgroud)

我收到错误:SyntaxError:意外的令牌导入.

参考lib我正在尝试导入:

//------ lib.js ------
export const sqrt = Math.sqrt;
export function square(x) {
    return x * x;
}
export function diag(x, y) {
    return sqrt(square(x) + square(y));
}
Run Code Online (Sandbox Code Playgroud)

我缺少什么,如何让节点识别我的import语句?

node.js es6-modules

240
推荐指数
11
解决办法
22万
查看次数

如何在Node.js REPL中导入ES模块?

我有一个ES6模块right.mjs。将其作为参数执行即可node

$ node --version
v8.10.0
$ node --experimental-modules right.mjs
(node:4492) ExperimentalWarning: The ESM module loader is experimental.
executing right module
Run Code Online (Sandbox Code Playgroud)

executing right module 是模块的输出。

与此相反,REPL中的以下输入等待进一步的输入:

$ node --experimental-modules
> (node:4526) ExperimentalWarning: The ESM module loader is experimental.

> import 'right.mjs';
... 
Run Code Online (Sandbox Code Playgroud)

我不明白为什么。

与:

> import './right.mjs';
... 
Run Code Online (Sandbox Code Playgroud)

尝试require导致:

> require('./right.mjs');
Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: /home/xxx/right.mjs
    at Object.Module._extensions..mjs (module.js:686:11)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Module.require …
Run Code Online (Sandbox Code Playgroud)

import module node.js

5
推荐指数
4
解决办法
1652
查看次数

打字稿:语法错误:意外的标记“导出”

在我的 React 项目中,我需要在 3 个打字稿项目之间共享模型(在我的例子中是打字稿接口)。所以我选择了 bit.env 并将所有模型导入到https://bit.dev/model/index/~code,一切都很好。

然后我需要验证模型中的字段,因此我将实用程序函数添加到https://bit.dev/model/index/~code#util.ts并将其部署到 bit.env

当我尝试在我的项目#2(我保存 firebase 云函数的地方)中使用此辅助函数时,我开始遇到以下错误。

/Users/vinoth.gopu/Documents/mine/oss/Cloud/functions/node_modules/@bit/model.index/dist/index.js:1
export * from './admin';
^^^^^^

SyntaxError: Unexpected token 'export'
    at wrapSafe (internal/modules/cjs/loader.js:1101:16)
    at Module._compile (internal/modules/cjs/loader.js:1149:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1205:10)

Run Code Online (Sandbox Code Playgroud)

我在项目 #2 中的代码

export const placeOrder = functions
    .runWith({
        memory:'256MB'
    })
    .region(cloudConfig.firebase.region)
    .firestore
    .document('Orders/{OrderId}')
    .onCreate((snap, context) => {
        const orderDetails = snap.data() as UserOrders;

        try {
            //check if all fields of interface implemented
            if(isOrder(orderDetails)) { // PROBLEM HERE
                 //do something
            }

Run Code Online (Sandbox Code Playgroud)

正如上面代码中所指出的,我可以使用该模型项目中的所有接口,但辅助函数会抛出错误消息。

我参考了这些文章和链接

  1. 获得意外的令牌导出
  2. https://medium.com/the-node-js-collection/an-update-on-es6-modules-in-node-js-42c958b890c …

javascript node.js typescript babeljs

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

node.js ×3

babeljs ×1

es6-modules ×1

import ×1

javascript ×1

module ×1

typescript ×1