2016-05-12 7 views
-1

私はビルドプロセスの一環としてgruntを使用することにいくつかの問題があります。私たちは、TeamCityサーバーを使用して、展開前にgruntコマンドを実行しています。本質的には、未圧縮のjsとcssをチェックインし、次に展開前にGruntを縮小するようにしたいと考えています。すべてのビルドで依存関係をインストールせずにビルドサーバでGrunt.jsを実行できますか?

私が気づいた問題は、TeamCityのビルドファイルシステムの内容を削除してGITから戻してしまうことです(これは、古いファイルが欲しくないときに古いファイルが止まるためです) 。グランツはinsist that all dependencies are installed locally to the GruntFile.js thoughと思われます。

これは、すべてのビルドで私はnpm installを実行する必要があることを意味します。これは時代がかかり、デプロイメントプロセスを実際に遅くしています(チーム都市でもプロキシサーバがこれを気に入らないとは限りません...)

私はどういうわけか依存関係をインストールしますグローバルにをダウンロードし、一度だけダウンロードします(変更することはめったにありません)。しかし、私はこれを行う方法を把握していないようですか?

私はnode_modulesフォルダ内のチェックのアイデアをおもちゃにその後私は、これは8800個のファイル含ま実現:私はこれでgitリポジトリを汚染したくないのでOを。

は、ここで我々が持っている依存関係かを示すためにpackage.jsonです:

{ 
    "name": "name", 
    "title": "title", 
    "description": "description", 
    "version": "0.0.1", 
    "engines": { 
    "node": ">=0.8" 
    }, 
    "scripts": { 
    "test": "grunt assemble" 
    }, 
    "dependencies": { 
    "assemble": "^0.4.42", 
    "css-parse": "^1.5.3", 
    "globule": "^0.2.0", 
    "grunt": "~0.4.2", 
    "grunt-combine-media-queries": "^1.0.19", 
    "grunt-contrib-clean": "^0.6.0", 
    "grunt-contrib-concat": "^0.3.0", 
    "grunt-contrib-connect": "^0.6.0", 
    "grunt-contrib-copy": "~0.5.0", 
    "grunt-contrib-cssmin": "^0.10.0", 
    "grunt-contrib-jshint": "^0.8.0", 
    "grunt-contrib-less": "^0.9.0", 
    "grunt-contrib-uglify": "^0.3.3", 
    "grunt-contrib-watch": "^0.5.3", 
    "grunt-cssshrink": "0.0.5", 
    "grunt-lesslint": "^1.1.7", 
    "grunt-modernizr": "^0.5.2", 
    "grunt-prettify": "^0.3.5", 
    "grunt-replace": "^0.6.2", 
    "grunt-stripmq": "0.0.3", 
    "handlebars-helper-repeat": "^0.2.0", 
    "load-grunt-tasks": "^0.2.1", 
    "pretty": "^0.1.2", 
    "time-grunt": "^0.2.10" 
    }, 
    "keywords": [ 
    "assemble", 
    "templates", 
    "handlebars", 
    "site generator", 
    "site builder", 
    "grunt" 
    ] 
} 

私は実際にこれを設定していないと私は「ので、うなり声、ノードの私の知識のほとんどは日の研究のカップルから茎なぜこれがそのまま設定されているのか100%は確信していません。何か驚くほど間違っている場合は、より良い提案にオープンですか?

+0

はい、それぞれのビルドごとに再インストールすることをお勧めします。さて、もしそれが本当に遅く、それがネットワーク上の問題であるとすれば、自分のnpmキャッシュサーバーをあなたのLANに設定するのはどうですか? http://willcodefor.beer/setup-your-own-npm-cache-server/ –

+0

TBH、私はあまりにも大きなWindowsのファイルシステムは、いくつかを表示させることはできません従属のその56メガバイトをあきらめているそのうちの!私はpowershellからYuiCompressを実行し、それを使ってやります。 – Liam

答えて

2

Artifact dependenciesを実際に設定することができます。

これはつまり、 (アーカイブとしてパック理由はない?)アーティファクトとしてnode_modulesフォルダを保存し

  • すべての8Kファイル上を取得するために

    • npm install
    :あなたは、2つのことを行い別のビルド構成を作成すること

    この設定では、package.jsonファイルで何か変更があった場合に、ビルドを開始するように設定されたtrigger rulesがある可能性があります。

    あなたの現在の主な構成は、最初のものに依存します。それから、node_modulesをフェッチするように構成された成果物ルールがあります。それだけです。

    +0

    実際にはかなり良いアイデアだ、私はそれを調べるだろう – Liam

    関連する問題