GULP:没有定义gulp

时间:2016-09-19 07:13:51

标签: npm gulp

如下面的屏幕截图所示,我无法运行gulp来连接JavaScript文件。它说gulp is not defined

我尝试过以下命令:

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;

enter image description here

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));
});

2 个答案:

答案 0 :(得分:14)

您只需要在本地安装并需要gulp ,您可能只在全球范围内安装

在命令行

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

在你的gulpfile.js

var gulp = require('gulp'); 

这是与命令行依赖项(全局安装)不同的依赖项。更具体地说,它是相同的NPM包,但命令行程序通常会从NPM包中的不同入口点执行代码,然后需要(&#39; X&#39;)将返回。

如果我们转到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": [
    "build",
    "stream",
    "system",
    "make",
    "tool",
    "asset",
    "pipeline"
  ],
  "files": [
    "index.js",
    "lib",
    "bin",
    "completion",
    "gulp.1"
  ],
  "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",
    "test": "mocha --reporter spec",
    "coveralls": "istanbul cover _mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | coveralls && rm -rf ./coverage"
  },
  "engines": {
    "node": ">= 0.9"
  },
  "license": "MIT"
}

所以在命令行:

$ gulp default

将执行此操作:

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

另一方面,在您的代码中要求(&#39; gulp&#39;)将返回此值:

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

通常我们在package.json文件中看到这个:

"main": "index.js"

但由于这是默认值,他们只是省略了它(这是愚蠢的IMO,最好是明确的,但它们不是我见过的第一个项目采用蹩脚的速记路线。)。

答案 1 :(得分:0)

它出现在Windows上,通常是以下修复之一:

  • 如果你没有,就在项目文件夹上运行npm install gulp,即使是 你已经全球安装了gulp。
  • 通常情况下,它不是Windows上的问题,但它可能是一个问题 路径。该软件包将尝试从环境中获取PATH, 但你可以通过在你的gulp设置中添加exec_args来覆盖它。 例如,在Ubuntu上:

    &#34; exec_args&#34;:{       &#34;路径&#34;:&#34; / bin:/ usr / bin:/ usr / local / bin&#34;     }

希望没关系。

来源:https://github.com/NicoSantangelo/sublime-gulp/issues/12