1

次のGulpタスクがあります。

var gulp = require('gulp');
var browserify = require('browserify');
var reactify = require('reactify');
var source = require('vinyl-source-stream');
var uglify = require('gulp-uglify');
var buffer = require('vinyl-buffer');
var derequire = require('gulp-derequire');

gulp.task('build-scripts', function () {
    var b = browserify();
    b.transform(reactify);
    b.add('./Scripts/app/app.js');

    return b.bundle()
    .pipe(source('./Scripts/build/bundle.js'))
    .pipe(derequire())
    .pipe(buffer())
    .pipe(uglify())
    .pipe(gulp.dest('.'))

});

gulp.task('default', ['build-scripts']);

VS2013 の Task Run Explorer でこれを実行します。すべての依存関係をインストールしnpm cliてタスクを実行すると、すべてが期待どおりに機能します。を追加するpackage.jsonと、次のエラーが表示されます。

\ReactAccordion\gulpfile.js" build-scripts
[15:56:24] Using gulpfile ~\Documents\Visual Studio 2013\Projects\ReactAccordion\ReactAccordion\gulpfile.js
[15:56:24] Starting 'build-scripts'...
events.js:85
      throw er; // Unhandled 'error' event
            ^
Error: SyntaxError: Unexpected token  while parsing json file ReactAccordion\ReactAccordion\package.json
    at ReactAccordion\node_modules\browserify\node_modules\module-deps\index.js:477:30
    at fs.js:334:14
    at FSReqWrap.oncomplete (fs.js:95:15)
Process terminated with code 1.

パッケージを復元した後package.jsonにソリューションからファイルを削除すると、タスクは再び正常に完了します。検索してみましたが、同様の問題が報告されているのが見つかりません。JS ファイルを見ると、すべて問題ないように見えます。

これは私のpackage.jsonファイルです:

{
    "name": "ReactAccordion",
    "version": "1.0.0",
    "private": true,
    "dependencies": {
        "react": "0.13.3"
    },
    "devDependencies": {
        "gulp": "3.9.0",
        "browserify": "~10.2.4",
        "reactify": "1.1.1",
        "vinyl-source-stream": "1.1.0",
        "gulp-uglify": "1.2.0",
        "vinyl-buffer": "1.0.0",
        "gulp-derequire": "2.1.0"
    }
}
4

1 に答える 1

1

Visual Studio を使用して json ファイルを作成すると、BOM (バイト オーダー マーキング) が追加され、JSON が無効になります。npm install は package.json を読み取ることができません。

代わりに、メモ帳を使用して package.json ファイルを作成してみてください。

于 2015-11-09T15:14:43.687 に答える