如下面的屏幕截图所示,我无法运行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;
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));
});
答案 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上,通常是以下修复之一:
通常情况下,它不是Windows上的问题,但它可能是一个问题 路径。该软件包将尝试从环境中获取PATH, 但你可以通过在你的gulp设置中添加exec_args来覆盖它。 例如,在Ubuntu上:
&#34; exec_args&#34;:{ &#34;路径&#34;:&#34; / bin:/ usr / bin:/ usr / local / bin&#34; }
希望没关系。