NPM - Browserify “'import' 和 'export' 可能只与 'sourceType: module' 一起出现”

And*_*ier 7 node.js npm browserify

我正在尝试使用 Browserify 将文件 tensorflow.js 文件(用 Node.js 编写)转换为纯 Javascript。在文件中有两行

import * as tf from '@tensorflow/tfjs';
import {MnistData} from './data';
Run Code Online (Sandbox Code Playgroud)

当我导出这个时,我收到错误“ParseError:'import'和'export'可能只出现在'sourceType:module'中”。我该如何解决这个错误?

非常感谢,安迪

fre*_*nte 10

您可以使用esmify向 browserify 添加 ES 模块支持:

browserify index.js -p esmify > bundle.js
Run Code Online (Sandbox Code Playgroud)

有关更多使用信息,请参阅项目的自述文件。

  • 距离这个答案发布已有 4 年了,自那以后发生了很多变化。如今,使用 browserify 是一个糟糕的主意,因为它已经过时了。我建议使用 vite 或 esbuild 或任何其他在过去一年中有过提交的东西。Browserify 基本上被放弃了。 (3认同)
  • 执行此操作时出现以下错误。无法从“C:\Users\Development\static\main\base\js”找到模块“esmify”。我已经按照 GitHub 网站上的说明进行操作。 (2认同)
  • @FearlessFuture esmify 必须首先安装:`npm install --save-dev esmify` (2认同)

小智 0

Browserify 获取模块导出并基本上将它们复制粘贴到您的 JavaScript 文件中。这个错误只是告诉你当前的 browserify 不支持你的语句的语法(基本上,不能做 es6+)。

因此,您要做的第一件事是通过 babel 运行该文件,将其转换为 es2015 或 browserify 需要识别正确导出语法的任何内容。