javascript - Gulp 抛出错误 'Must use import to load ES Module'

标签 javascript node.js gulp

我们正在转换我们的 gulpfile.js在 Node v13.8.0到 ES6 如下:

import { src, dest, series, parallel, watch } from 'gulp'
import nodemon from 'gulp-nodemon' // normal nodemon does not display an error on app crash
import env from 'gulp-env'
import browser from 'browser-sync'
import sass from 'gulp-sass'
// Tasks
export default {
    cssTranspile: cssTranspile,
    jsTranspile: jsTranspile,
    server: series(startNodemon, startBrowserSync),
    default: series(
        parallel(
            cssTranspile,
            jsTranspile
        ),
        startNodemon,
        startBrowserSync,
        function () {
            watch('public/scss/*.scss', cssTranspile)
        }
    )
}

仅运行 gulp 时报告的错误, 是:
internal/modules/cjs/loader.js:1160
      throw new ERR_REQUIRE_ESM(filename, parentPath, packageJsonPath);
      ^

Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: T:\Node\ICP\gulpfile.js
require() of ES modules is not supported.

我一定做错了什么。有人知道它可能是什么吗?
CLI version: 2.2.0
Local version: 4.0.2

旗帜"type": "module",设置在 package.jsonnote docs 中所述.该问题与 this issue 非常相似在 geolib 库中。

当我们重命名 gulpfile.jsgulpfile.babel.js如所述here我们得到同样的错误。
package.json包含这些包:

  "devDependencies": {
    "@babel/core": "^7.8.4",
    "@babel/preset-env": "^7.8.4",
    "@babel/register": "^7.8.3",
    "exports-loader": "^0.7.0",
    "gulp": "^4.0.2",
    "gulp-env": "^0.4.0",
    "gulp-nodemon": "^2.4.2",
    "gulp-sass": "^4.0.2",
    "nodemon": "^2.0.2"
  },
  "type": "module",
  "babel": {
    "presets": [
      "@babel/env"
    ]

最佳答案

在回答我自己的问题时,当标志 "type": "module"在 package.json 中设置你不能使用 gulp .更多信息可以找到here .

关于javascript - Gulp 抛出错误 'Must use import to load ES Module',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60209196/

相关文章:

javascript - 不确定为什么这不通过 AJAX 在 IE 中加载内容?

javascript - 如何使用 Multer 磁盘存储选项(NodeJs)读取存储的文件?

node.js - 使用 Passport-google-oauth2 通过 Facebook 和 Google 进行身份验证

javascript - 使用带有 ajax 搜索的选择下拉菜单进行更改的 jQuery

javascript - 从原生 ios 代码调用 javascript 函数(位于参数中)

javascript - 从nodejs中的数组将多个输入数据插入MySQL

gulp - 如何使用 gulp 一步复制并注入(inject) main-bower-files?

javascript - gulp rollup 不工作外部资源导入

javascript - Gulpfile 图像未在 css 中显示

javascript - Firebase.ServerValue.TIMESTAMP 未在监听器和实际添加数据的客户端之间同步