【问题标题】:How to import modules or external .js files in node.js如何在 node.js 中导入模块或外部 .js 文件
【发布时间】:2019-12-28 16:48:48
【问题描述】:

我想在我的节点应用程序中使用 tensorflow.js。

这里的例子:https://github.com/tensorflow/tfjs-models/tree/master/universal-sentence-encoder

状态:

安装

$ npm install @tensorflow/tfjs @tensorflow-models/universal-sentence-encoder

用法 在 npm 中导入:

import * as use from '@tensorflow-models/universal-sentence-encoder';

或作为独立的脚本标签:

<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs"></script>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/universal-sentence-encoder"></script>

如果我将脚本标签添加到一个 html 文件(没有 node.js),如果我在同一个 html 文件的脚本标签中执行它,我的代码就可以工作。

但我不知道如何将功能导入我的节点应用程序(运行 express 的 .js 文件)

我是否需要“要求”某些东西,因为“导入...”不起作用

我希望你能帮助我,亲切的问候, 毫克

【问题讨论】:

  • 是的,你需要require,因为import 在Nodejs 中不起作用。原因是,import 是 ES6 模块语法,但 Nodejs 适用于 CommonJS。

标签: javascript node.js node-modules tensorflow.js


【解决方案1】:
  • 在node中,可以使用下面的方式加载universal-sentence-encoder
const use = require('@tensorflow-models/universal-sentence-encoder');
  • 从 node.js 13(实验)开始,可以在 node.js 中使用 es6 import。但该文件应将其最近的父 package.json type 设置为 module

  • 如果你为 node.js 使用 ts-node TypeScript 执行环境,你可以使用 es6 导入语法。但是你需要提供 ts.config.json 来表明你正在加载一个 common.js 模块。

{
    "compilerOptions": {
        "module": "commonjs",
        "esModuleInterop": true,
        "target": "es6",
        "noImplicitAny": true,
        "moduleResolution": "node",
        "sourceMap": true,
        "outDir": "out",
        "baseUrl": ".",
        "paths": {
            "*": [
                "node_modules/*",
                "src/types/*"
            ]
        }
    },
    "include": [
        "src/**/*"
    ]
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-28
    • 2019-01-06
    • 1970-01-01
    • 2018-04-06
    • 1970-01-01
    • 1970-01-01
    • 2021-08-21
    • 2017-05-08
    相关资源
    最近更新 更多