首页 > 解决方案 > Gulp 3.9.1 导致语法错误

问题描述

我下载了某人的项目并尝试使用以下命令运行 gulp:

npm install
node_modules/.bin/gulp

但这会导致错误:

/node_modules/gulp-imagemin/index.js:1
import {createRequire} from 'node:module';
       ^

SyntaxError: Unexpected token {
    at Module._compile (internal/modules/cjs/loader.js:721:23)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:690:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (/var/www/html/frontend/gulpfile.js:15:16)
    at Module._compile (internal/modules/cjs/loader.js:776:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)

我的 package.json 显示

{
  "name": "a-project",
  "version": "1.0.0",
  "author(s)": [
    "Someone"
  ],
  "description": "A project",
  "dependencies": {
    "bower": "latest",
    "gulp": "^3.9.1",
    "gulp-autoprefixer": "latest",
    "gulp-clean": "latest",
    "gulp-clean-css": "latest",
    "gulp-concat": "",
    "gulp-copy": "latest",
    "gulp-data": "latest",
    "gulp-htmlmin": "latest",
    "gulp-imagemin": "latest",
    "gulp-nunjucks-render": "latest",
    "gulp-rename": "latest",
    "gulp-replace": "latest",
    "gulp-sass": "latest",
    "gulp-strip-debug": "latest",
    "gulp-uglify": "latest",
    "gulp-watch": "latest",
    "merge-stream": "latest",
    "normalize-scss": "latest",
    "run-sequence": "latest"
  }
}

这是我的节点和 npm 版本:

node -v
v10.16.0
npm -v
6.9.0

我究竟做错了什么?


额外的

当我将节点升级到 v14.17.6 时,我得到一个不同的错误:

fs.js:45
} = primordials;
    ^

ReferenceError: primordials is not defined
    at fs.js:45:5
    at req_ (/var/www/html/frontend/node_modules/natives/index.js:143:24)
    at Object.req [as require] (/var/www/html/frontend/node_modules/natives/index.js:55:10)
 etc...


标签: node.jsgulp

解决方案


推荐阅读