質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jade

Jade(ジェイド)は、Hamlに影響を受けて開発されたJST(JavaScript Templates)のひとつです。Node.jsで動かすことができます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

gulp

gulpは、Node.jsをベースとしたタスク自動化ツールの一つ。ストリームでファイルを処理することが特徴です。CSSプリプロセッサの使用時のコンパイルや、CSS・JavaScriptファイルの圧縮・結合などを自動的に行うことができます。

Q&A

解決済

1回答

4584閲覧

gulpでjadeを変換すると、htmlは出力されるけどエラーメッセージも出る

muro

総合スコア99

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jade

Jade(ジェイド)は、Hamlに影響を受けて開発されたJST(JavaScript Templates)のひとつです。Node.jsで動かすことができます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

gulp

gulpは、Node.jsをベースとしたタスク自動化ツールの一つ。ストリームでファイルを処理することが特徴です。CSSプリプロセッサの使用時のコンパイルや、CSS・JavaScriptファイルの圧縮・結合などを自動的に行うことができます。

0グッド

1クリップ

投稿2015/12/03 08:33

編集2015/12/07 01:29

以下のようなgulpfileを作成し、jadeファイルを保存時に自動的にhtmlファイルに変換する処理をさせています。

htmlは、jadeと同じフォルダに出力されるようにしています。

javascript

1// gulpfile.js 2var gulp, plugins; 3 4gulp = require("gulp"); 5 6plugins = require("gulp-load-plugins")(); 7 8gulp.task("jade", function() { 9 return gulp.src("**/*.jade").pipe(plugins.plumber({ 10 errorHandler: plugins.notify.onError("Error: <%= error.message %>") 11 })).pipe(plugins.jade({ 12 pretty: true 13 })).pipe(gulp.dest("./")); 14}); 15 16gulp.task("default", function() { 17 return gulp.watch("**/*.jade", ["jade"]); 18}); 19 20//# sourceMappingURL=gulpfile.js.map

coffeescript

1# gulpfile.coffee 2gulp = require("gulp") 3plugins = require("gulp-load-plugins")() 4 5gulp.task "jade", -> 6 gulp.src("**/*.jade") 7 .pipe plugins.plumber 8 errorHandler: plugins.notify.onError("Error: <%= error.message %>") 9 .pipe plugins.jade 10 pretty: true 11 .pipe gulp.dest("./") 12 13gulp.task "default", -> 14 gulp.watch "**/*.jade", ["jade"]

しかし、実際にjadeを保存すると、htmlは正常に出力されているにも関わらず、以下のエラーメッセージがcmdに表示されてしまいます。

gulp-notify: [Error running Gulp] Error: Unexpected token (29:15)

jadeの内容がどんなものであっても、どこのフォルダにおいてあっても、同じ内容のエラーメッセージが表示されます。

Unexpected tokenは余計な記号が入っているという意味らしいのですが、ここから省かないといけないものなんてあるのでしょうか?

htmlは出力されているので、いちおうこのままでも作業をできないことはないのですが、保存するたびに同じエラーメッセージが出ては煩わしいので、このエラーを解決したいです。

【追記】
package.jsonは以下のとおりです。

json

1{ 2 "name": "default", 3 "version": "1.0.0", 4 "description": "", 5 "main": "index.js", 6 "dependencies": { 7 "gulp-coffee": "^2.3.1", 8 "gulp-autoprefixer": "^3.1.0", 9 "gulp": "^3.9.0", 10 "gulp-jade-php": "^1.1.0", 11 "gulp-jade": "^1.1.0", 12 "gulp-sass": "^2.1.0", 13 "gulp-load-plugins": "^1.1.0", 14 "gulp-notify": "^2.2.0", 15 "gulp-sourcemaps": "^1.6.0", 16 "gulp-plumber": "^1.0.1", 17 "node-sass": "^3.4.2" 18 }, 19 "devDependencies": { 20 "gulp-rename": "^1.2.2" 21 }, 22 "scripts": { 23 "test": "echo \"Error: no test specified\" && exit 1" 24 }, 25 "repository": { 26 "type": "git", 27 "url": "git+https://○○:○○@bitbucket.org/○○/○○.git" 28 }, 29 "author": "", 30 "license": "ISC", 31 "homepage": "https://bitbucket.org/○○/○○#readme" 32} 33

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

以下の環境で試してみたところ gulp のエラー出力は出ませんでした

npm -v

3.3.12

package.json

json:package.json

1{ 2 "name": "gulp-test", 3 "version": "1.0.0", 4 "description": "", 5 "main": "gulpfile.coffee", 6 "devDependencies": { 7 "coffee-script": "^1.10.0", 8 "gulp": "^3.9.0", 9 "gulp-jade": "^1.1.0", 10 "gulp-load-plugins": "^1.1.0", 11 "gulp-notify": "^2.2.0", 12 "gulp-plumber": "^1.0.1" 13 } 14}

gulp 側ではなく jade 側の構文などに問題があると思われます

jade

1doctype html 2html 3 head 4 meta(charset='UTF-8') 5 title jade test 6 body 7 h1 Hello World

例えば以上のような簡易な jade "一つだけ"置いて試しても同様の notify が発生しますか?

投稿2015/12/05 00:30

anozon

総合スコア662

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

muro

2015/12/07 02:02 編集

gulp環境が会社PCにしかないため、返信がおそくなってしまいました。回答ありがとうございます。 node.jsが最新バージョンではなかったので最新のものにアップデートしてgulpを実行してみましたが、それでもエラーが出ます。 上記のjadeどころか、バージョンアップ前でも後でも、何も書かれていないjadeでさえエラーになります。jadeも一つだけにして実行しました。 また、package.jsonを本文のほうに追記しました。
muro

2015/12/10 01:24

node_modulesをいったん全て削除し、node.jsのバージョンを5.1.1にあげてから、本文に書いたpackage.jsonにあるプラグインをすべてインストールし直すと、エラーが出なくなりました。 なお、gulp-jade-phpのみ、バージョンが1.1.0から2.0.0-0に上がっています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問