1

http://docs.grafana.org/project/building_from_source/にある手順に従って、Grafana をビルドし、http://localhost:3000でリッスンするサーバーを起動できますが、CSS は明らかに機能していません。Build the Front-end Assets のビルドコマンドを再実行しようとしましたが、次のシーケンスでエラーが発生します。

npm install
npm install -g grunt-cli
grunt

これらのコマンドをどのディレクトリから実行する必要があるかは明確ではありません。$GOPATH/src/github.com/grafana/grafana を想定していますが、最初のコマンドを実行すると、次のnpm installような一連のエラーが表示されます。

npm WARN locking Error: EACCES, open '/Users/sam/.npm/_locks/glob-386d0e7784ce4d2e.lock'
npm WARN locking     at Error (native)
npm WARN locking  /Users/sam/.npm/_locks/glob-386d0e7784ce4d2e.lock failed { [Error: EACCES, open '/Users/sam/.npm/_locks/glob-386d0e7784ce4d2e.lock']
npm WARN locking   errno: -13,
npm WARN locking   code: 'EACCES',
npm WARN locking   path: '/Users/sam/.npm/_locks/glob-386d0e7784ce4d2e.lock' }
npm ERR! Darwin 14.0.0
npm ERR! argv "node" "/usr/local/bin/npm" "install"
npm ERR! node v0.12.7
npm ERR! npm  v2.11.3

npm ERR! Attempt to unlock /Users/sam/Projects/go/src/github.com/grafana/grafana/node_modules/glob, which hasn't been locked
npm ERR! 
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>

ここhttps://nodejs.org/download/docs/latest/からNodeJSをインストールし、npmの/usr/local/binを確認しましたが、存在しますが、インストール時に構成手順を逃したかどうかはわかりません。

実行の次のステップに移ると、次のnpm install -g grunt-cliように 1 つのエラー ブロック (前と同様) が表示されます。

npm WARN locking Error: EACCES, open '/Users/sam/.npm/_locks/grunt-cli-58f484dab06f0a30.lock'
npm WARN locking     at Error (native)
npm WARN locking  /Users/sam/.npm/_locks/grunt-cli-58f484dab06f0a30.lock failed { [Error: EACCES, open '/Users/sam/.npm/_locks/grunt-cli-58f484dab06f0a30.lock']
npm WARN locking   errno: -13,
npm WARN locking   code: 'EACCES',
npm WARN locking   path: '/Users/sam/.npm/_locks/grunt-cli-58f484dab06f0a30.lock' }
npm ERR! Darwin 14.0.0
npm ERR! argv "node" "/usr/local/bin/npm" "install" "-g" "grunt-cli"
npm ERR! node v0.12.7
npm ERR! npm  v2.11.3

npm ERR! Attempt to unlock /usr/local/lib/node_modules/grunt-cli, which hasn't been locked
npm ERR! 
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/sam/Projects/go/src/github.com/grafana/grafana/npm-debug.log

最後に実行するgruntと、次の致命的なエラーが発生します。

grunt-cli: The grunt command line interface. (v0.1.13)

Fatal error: Unable to find local grunt.

If you're seeing this message, either a Gruntfile wasn't found or grunt
hasn't been installed locally to your project. For more information about
installing and configuring grunt, please see the Getting Started guide:

http://gruntjs.com/getting-started

また、プロジェクト ディレクトリに package.json ファイルと Gruntfile.js ファイルがあることも確認しました。以下は、役立つ場合のすべてのファイルのリストです。

09:25:54|~/Projects/go/src/github.com/grafana/grafana$ ls -alF
total 47648
drwxr-xr-x  42 sam  staff      1428 Sep  5 21:21 ./
drwxr-xr-x   3 sam  staff       102 Sep  5 17:59 ../
-rw-r--r--   1 sam  staff        36 Sep  5 18:02 .bowerrc
-rw-r--r--   1 sam  staff       344 Sep  5 18:02 .bra.toml
-rw-r--r--   1 sam  staff       197 Sep  5 18:02 .editorconfig
drwxr-xr-x  13 sam  staff       442 Sep  5 19:28 .git/
-rw-r--r--   1 sam  staff       345 Sep  5 18:02 .gitignore
drwxr-xr-x   3 sam  staff       102 Sep  5 18:02 .hooks/
-rw-r--r--   1 sam  staff       418 Sep  5 18:02 .jscs.json
-rw-r--r--   1 sam  staff       287 Sep  5 18:02 .jsfmtrc
-rw-r--r--   1 sam  staff       564 Sep  5 18:02 .jshintrc
-rw-r--r--   1 sam  staff     54566 Sep  5 18:02 CHANGELOG.md
-rw-r--r--   1 sam  staff       571 Sep  5 18:02 CONTRIBUTING.md
drwxr-xr-x   5 sam  staff       170 Sep  5 18:02 Godeps/
-rw-r--r--@  1 sam  staff      1289 Sep  5 18:02 Gruntfile.js
-rw-r--r--   1 sam  staff       578 Sep  5 18:02 LICENSE.md
-rw-r--r--   1 sam  staff       638 Sep  5 18:02 NOTICE.md
-rw-r--r--   1 sam  staff      5286 Sep  5 18:02 README.md
-rw-r--r--   1 sam  staff       591 Sep  5 18:02 appveyor.yml
drwxr-xr-x   3 sam  staff       102 Sep  5 18:02 benchmarks/
drwxr-xr-x   4 sam  staff       136 Sep  5 19:28 bin/
-rw-r--r--   1 sam  staff       569 Sep  5 18:02 bower.json
-rw-r--r--   1 sam  staff     11721 Sep  5 18:02 build.go
-rw-r--r--   1 sam  staff       637 Sep  5 18:02 circle.yml
drwxr-xr-x   5 sam  staff       170 Sep  5 18:02 conf/
drwxr-xr-x   5 sam  staff       170 Sep  5 18:50 data/
drwxr-xr-x   8 sam  staff       272 Sep  5 18:02 docker/
drwxr-xr-x   9 sam  staff       306 Sep  5 18:02 docs/
drwxr-xr-x   8 sam  staff       272 Sep  5 18:02 emails/
-rw-r--r--@  1 sam  staff     35472 Sep  5 19:46 err.txt
-rwxr-xr-x   1 sam  staff  24195460 Sep  5 18:49 grafana*
-rw-r--r--   1 sam  staff        24 Sep  5 18:02 latest.json
-rw-r--r--   1 sam  staff      2857 Sep  5 18:02 main.go
-rw-r--r--   1 sam  staff      6693 Sep  5 21:21 npm-debug.log
-rw-r--r--@  1 sam  staff      1870 Sep  5 18:02 package.json
drwxr-xr-x   4 sam  staff       136 Sep  5 18:02 packaging/
drwxr-xr-x  17 sam  staff       578 Sep  5 18:02 pkg/
drwxr-xr-x  12 sam  staff       408 Sep  5 18:02 public/
drwxr-xr-x   7 sam  staff       238 Sep  5 18:02 tasks/
-rwxr-xr-x   1 sam  staff      1178 Sep  5 18:02 test.sh*
drwxr-xr-x   3 sam  staff       102 Sep  5 18:02 tests/
drwxr-xr-x   3 sam  staff       102 Sep  5 18:02 vendor/

./bin/grafana-server($GOPATH/src/github.com/grafana/grafana から)サーバーを起動すると、期待どおりの出力が得られますが、 http://localhost:3000に移動すると、404 エラーの最後の行が次のように追加されます。

09:27:13|~/Projects/go/src/github.com/grafana/grafana$ ./bin/grafana-server 
2015/09/05 21:34:22 [I] Starting Grafana
2015/09/05 21:34:22 [I] Version: 2.2.0-pre1, Commit: v2.1.2+199-gf27f028, Build date: 2015-09-04 08:34:01 -0700 MST
2015/09/05 21:34:22 [I] Configuration Info
Config files:
  [0]: /Users/sam/Projects/go/src/github.com/grafana/grafana/conf/defaults.ini
Paths:
  home: /Users/sam/Projects/go/src/github.com/grafana/grafana
  data: /Users/sam/Projects/go/src/github.com/grafana/grafana/data
  logs: /Users/sam/Projects/go/src/github.com/grafana/grafana/data/log

2015/09/05 21:34:22 [I] Database: sqlite3
2015/09/05 21:34:22 [I] Migrator: Starting DB migration
2015/09/05 21:34:22 [I] Listen: http://0.0.0.0:3000
2015/09/05 21:36:33 [I] Completed /css/grafana.dark.min.css 404 Not Found in 1.799267ms

以下は、プロジェクトに含まれていた Gruntfile.js の内容です (つまり、私は書いていません)。

/* jshint node:true */
'use strict';
module.exports = function (grunt) {
  var os = require('os');
  var config = {
    pkg: grunt.file.readJSON('package.json'),
    baseDir: '.',
    srcDir: 'public',
    destDir: 'dist',
    tempDir: 'tmp',
    arch: os.arch(),
    platform: process.platform.replace('win32', 'windows'),
  };

  if (process.platform.match(/^win/)) {
    config.arch = process.env.hasOwnProperty('ProgramFiles(x86)') ? 'x64' : 'x86';
  }

  config.pkg.version = grunt.option('pkgVer') || config.pkg.version;

  // load plugins
  require('load-grunt-tasks')(grunt);

  // load task definitions
  grunt.loadTasks('tasks');

  // Utility function to load plugin settings into config
  function loadConfig(config,path) {
    require('glob').sync('*', {cwd: path}).forEach(function(option) {
      var key = option.replace(/\.js$/,'');
      // If key already exists, extend it. It is your responsibility to avoid naming collisions
      config[key] = config[key] || {};
      grunt.util._.extend(config[key], require(path + option)(config,grunt));
    });
    // technically not required
    return config;
  }

  // Merge that object with what with whatever we have here
  loadConfig(config,'./tasks/options/');
  // pass the config to grunt
  grunt.initConfig(config);
};

また、要求されたため、プロジェクト内のすべての CSS ファイルのリストを以下に示します (ただし、これらが UI で使用される CSS ファイルであるかどうかは正確にはわかりません)。

10:23:03|~/Projects/go/src/github.com/grafana/grafana$ find . -iname "*.css"
./emails/assets/css/ink.css
./emails/assets/css/style.css
./public/vendor/angular/angular-csp.css
./public/vendor/angular-native-dragdrop/demo/css/styles.css
./public/vendor/angular-native-dragdrop/docs/css/styles.css
./public/vendor/css/font-awesome.min.css
./public/vendor/css/normalize.min.css
./public/vendor/css/spectrum.css
./public/vendor/css/timepicker.css

CSS を正しく動作させる方法について何か提案はありますか? 明らかな何かが欠けていると思いますが、数時間これに取り組んでいますが、役立つものは何も見つかりません。ありがとう!

4

1 に答える 1

0

css をインポートするときにパスが見つからない可能性があります。

パスに「public/vendor」を追加するだけで、この問題は解決します。

grunt ファイルについては、ノードが別のフォルダー内にタスクをロードしているようです。

 loadConfig(config,'./tasks/options/');      

 so I think you should update the question or look up the tasks at this line

grunt urlのファイル例を見ることができます

grunt がデフォルトのタスクで何をするかを見てください (例: $ grunt)

于 2015-09-06T05:39:40.290 に答える