NodeJS错误“无法在模块外部使用导入语句”

时间:2020-02-10 15:38:37

标签: javascript import module tensorflow.js

我正在尝试在javascript文件中导入tensorflowjs,但出现错误:

import * as tf from '@tensorflow/tfjs';
^^^^^^

SyntaxError: Cannot use import statement outside a module
    at wrapSafe (internal/modules/cjs/loader.js:983:16)
    at Module._compile (internal/modules/cjs/loader.js:1033:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1103:10)
    at Module.load (internal/modules/cjs/loader.js:914:32)
    at Function.Module._load (internal/modules/cjs/loader.js:822:14)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1143:12)
    at internal/main/run_main_module.js:16:11

已经阅读了SO的其他答案,我在index.html文件中指定了type =“ module”,但仍然无法正常工作。

谢谢您的帮助。

2 个答案:

答案 0 :(得分:0)

要加载ES模块,请在package.json中设置“ type”:“ module”

import * as tf from "@tensorflow/tfjs";

或 尝试证明这一点

   // import * as tf from "@tensorflow/tfjs";
    const tf = require('@tensorflow/tfjs');

答案 1 :(得分:0)

如评论中所述,您正在浏览器项目中使用节点导入。一个简单的解决方法是使用带有 tfjs 库的缩小(或非缩小)jS 包。
因此,在 HTML 文件中,你会做

<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs/dist/tf.min.js"></script>

并且直接使用tensorflowjs作为tf(你不需要需要import语句)