2017-05-31 191 views
0

NPM安装正确,但随后在我的部署中不断收到此错误。尝试让Gitlab CI运行NPM和Gulp时出错

npm info ok 
$ gulp 
/bin/bash: line 48: gulp: command not found 
ERROR: Job failed: exit code 1 

我.gitlab-ci.yml看起来像这样

image: node:latest 

cache: 
    paths: 
    - node_modules/ 

before_script: 
    - npm install 

pages: 
    stage: deploy 
    script: 
    - gulp 
    artifacts: 
    paths: 
    - public 

我的package.json包括以下

"scripts": { 
    "install": "gulp", 
    "test": "gulp test" 
}, 
"devDependencies": { 
    "gulp": "^3.9.1" 
} 

,我知道我的gulpfile.js是好的,因为它的工作原理在本地很棒,在npm install或简单地gulp运行我需要的一切。真的不知道我做错了什么。

回答

3

通过运行npm install您在安装包本地,它将被保存到项目的node_modules文件夹,将无法使用全局或作为一个别名(除非它已经在全球的装机量)。因此,如果您想使用gulp别名,则应该在全局安装它:npm install -g gulp或者您可以使用./node_modules/.bin/gulp命令从本地node_modules文件夹运行gulp。

+0

不幸的是,如果我这样做要么你建议的选项,我结束了错误缺少其他依赖于我的gulpfile.js中定义的 – wackozacko

+0

我假设你需要安装它们为好,您可以将您的' gulpfile'的问题? –

+1

我尝试完全消除Gulp,并简单地使用NPM脚本作为构建工具。原来是一个非常简单的解决方案,几乎减半了我的依赖关系,所以我就这么做了。但是,由于您的答案确实解决了我的错误,即使这不是我所接受的解决方案,我也接受了它。 – wackozacko

0

我添加了-g标志后,它对我来说不起作用。 为了解决我使用“导出”指令的问题。

before_script: 
    - npm install -g grunt grunt-cli 
    - export PATH=/usr/local/nodejs/node-v7.10.0-linux-x64/lib/node_modules/grunt-cli/bin:$PATH 
...