1

私は、grunt の CLI の可能性を使用して、独自のボイラープレートに取り組んでいます。grunt init:webdesign-projectこのために、inside という名前のフォルダーと対応するファイルwebdesign-projectを作成しました。これまでのところ、すべてがうまく機能しています。node_modules/grunt/initwebdesign-project.js

grunt.helper今、私はこのような機能で自分の「質問」を挿入したかった

grunt.helper('prompt_for', 'img_path', 'img')

しかし、これは私に与えます

TypeError: Cannot set property 'name' of undefined
at Object.module.exports.grunt.registerHelper.grunt.utils.spawn.cmd (/usr/lib/node_modules/grunt/tasks/init.js:573:17)
at Task.helper (/usr/lib/node_modules/grunt/lib/util/task.js:117:19)
at Object.exports.template (/usr/lib/node_modules/grunt/tasks/init/webdesign-project.js:30:11)
at Object.module.exports.grunt.registerHelper.done (/usr/lib/node_modules/grunt/tasks/init.js:240:27)
at Object.task.registerTask.thisTask.fn (/usr/lib/node_modules/grunt/lib/grunt/task.js:58:16)
at Task.<anonymous> (/usr/lib/node_modules/grunt/lib/util/task.js:341:36)
at Task.start (/usr/lib/node_modules/grunt/lib/util/task.js:357:5)
at Object.grunt.tasks (/usr/lib/node_modules/grunt/lib/grunt.js:143:8)
at Object.module.exports [as cli] (/usr/lib/node_modules/grunt/lib/grunt/cli.js:36:9)
at Object.<anonymous> (/usr/lib/node_modules/grunt/bin/grunt:19:14)

この関数を使用して独自の変数を定義することはできませんか?

編集:この関数のドキュメントが存在するかどうかを知っている人はいますか? (まだ見つけられませんでした)

4

2 に答える 2

2

「カスタムプロンプト」を実現する方法を見つけました-誰かが興味を持っている場合:

Grunt のgrunt.helper('prompt_for', '...')関数は、'...' の代わりに事前定義された値のセットのみを取るようです。実際、これらの値のいくつかには非常にユニークな機能がいくつかあるため、これは驚くべきことではありません (たとえばtestproject、プロジェクトの名前として入力した場合、「(git://github.com/peter/testproject.git)」は自動的に提案されます。

解決策:.jsgruntfile テンプレートのファイル (node_modules/grunt/tasks/init/gruntfile.js) を見てください - カスタム プロンプトの作成は次のようになります。

{
  name: 'img_path',
  message: 'Name the folder where all image files are located',
  default: 'img',
  // warning: '' couldn't find any use for this optional property
}

それ以外の

grunt.helper('prompt_for', 'img_path', 'img')
于 2012-10-11T19:00:34.177 に答える
2

node_modules/npm で更新すると上書きされるため、フォルダー内のファイルを変更または追加しないでください。カスタム初期化テンプレートを作成するための初期化ドキュメントをご覧ください: https://github.com/gruntjs/grunt/blob/master/docs/task_init.md#creating-custom-templates

既存の init テンプレートの 1 つを : にコピーし~/.grunt/tasks/init/webdesign-project.js、そこから変更することをお勧めします。

于 2012-10-11T17:28:18.053 に答える