GULP:未定义 Gulp

owfi6suc  于 2022-12-08  发布在  Gulp
关注(0)|答案(2)|浏览(143)

如下面的屏幕截图所示,我无法运行gulp来连接JavaScript文件。
我已经尝试了以下命令:

npm install -g gulp
npm install gulp
npm install gulp --save-dev

我还设置了如下环境变量:

C:\Users\<user>\AppData\Roaming\npm;C:\Python27;C:\Users\<user>\AppData\Roaming\npm\node_modules;C:\Users\<user>\AppData\Roaming\npm\node_modules\gulp;

var concat = require('gulp-concat');  
var rename = require('gulp-rename');  
var uglify = require('gulp-uglify');  

//script paths
var jsFiles = 'scripts/*.js',  
    jsDest = 'dist/scripts';

gulp.task('scripts', function() {  
    return gulp.src(jsFiles)
        .pipe(concat('scripts.js'))
        .pipe(gulp.dest(jsDest));
});
mrphzbgm

mrphzbgm1#

您只需要安装并要求gulp * 本地 *,您可能只全局安装了它
在命令行

cd <project-root> && npm install --save-dev gulp

在您的gulpfile.js中

var gulp = require('gulp');

这是一个与命令行依赖项不同的依赖项(全局安装)。更具体地说,它是同一个NPM包,但命令行程序通常会从NPM包中的不同入口点执行代码,然后返回require('X ')。
如果我们在Github上查看Gulp项目中的package.json文件,它会告诉我们整个故事:

{
  "name": "gulp",
  "description": "The streaming build system",
  "version": "3.9.1",
  "homepage": "http://gulpjs.com",
  "repository": "gulpjs/gulp",
  "author": "Fractal <contact@wearefractal.com> (http://wearefractal.com/)",
  "tags": [ ],
  "files": [ 
     // ...
   ],
  "bin": {
    "gulp": "./bin/gulp.js"
  },
  "man": "gulp.1",
  "dependencies": {
    // ...
  },
  "devDependencies": {
     // ...
  },
  "scripts": {
    "prepublish": "marked-man --name gulp docs/CLI.md > gulp.1",
    "lint": "eslint . && jscs *.js bin/ lib/ test/",
    "pretest": "npm run lint",
  },
  "engines": {
    "node": ">= 0.9"
  },
  "license": "MIT"
}

因此在命令行中:

$ gulp default

将执行以下操作:

"bin": {
        "gulp": "./bin/gulp.js"
      },

另一方面,代码中的require('gulp ')将返回以下内容的值:

https://github.com/gulpjs/gulp/blob/master/index.js

通常我们在package.json文件中看到的是:

"main": "index.js"

但由于这是默认设置,他们只是省略了它(这是愚蠢的IMO,最好是明确的,但他们不是我看到的第一个项目采取蹩脚的速记路线。

ftf50wuq

ftf50wuq2#

它出现在Windows上,通常可以通过以下方法之一修复:

  • 如果没有,在项目文件夹上运行npm install gulp,即使全局安装了gulp。
  • 通常,在Windows上这不是问题,但可能是PATH的问题。软件包会尝试从环境中获取PATH,但你可以通过在gulp设置中添加exec_args来覆盖它。例如,在Ubuntu上:

“执行参数”:{“路径”:“/bin:/用户名/bin:/用户名/本地/bin”}
希望一切都会好起来。
来源:https://github.com/NicoSantangelo/sublime-gulp/issues/12

相关问题