首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GULP:未定义gulp

GULP:未定义gulp
EN

Stack Overflow用户
提问于 2016-09-19 15:13:51
回答 2查看 16.5K关注 0票数 6

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

我尝试过以下命令:

代码语言:javascript
复制
npm install -g gulp
npm install gulp
npm install gulp --save-dev

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

代码语言:javascript
复制
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;

代码语言:javascript
复制
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));
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-19 15:18:33

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

在命令行中

代码语言:javascript
复制
cd <project-root> && npm install --save-dev gulp

在你的gulpfile.js中

代码语言:javascript
复制
var gulp = require('gulp'); 

这是与命令行依赖项(全局安装的)不同的依赖项。更具体地说,它是相同的NPM包,但命令行程序通常会从NPM包中的不同入口点执行代码,而不是从要求(‘X’)返回的入口点执行代码。

如果我们转到Github上的Gulp项目中的package.json文件,它将讲述整个故事:

代码语言:javascript
复制
{
  "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"
}

因此,在命令行中:

代码语言:javascript
复制
$ gulp default

将执行以下命令:

代码语言:javascript
复制
     "bin": {
        "gulp": "./bin/gulp.js"
      },

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

代码语言:javascript
复制
https://github.com/gulpjs/gulp/blob/master/index.js

通常,我们在package.json文件中看到这一点:

代码语言:javascript
复制
"main": "index.js"

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

票数 21
EN

Stack Overflow用户

发布于 2016-09-19 15:21:28

它发生在Windows上,通常使用以下方法之一进行修复:

如果你没有,在项目文件夹中运行npm install gulp,即使你已经安装了globally.

  • Normally,,这在上不是问题,但可能是路径的问题。该包将尝试从环境中获取路径,但您可以通过将exec_args添加到您的gulp设置来覆盖它。例如,在Ubuntu上:

"exec_args":{“路径”:"/bin:/usr/bin:/usr/local/bin“}

希望一切都好。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39567353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档