5

Gulp / npm noobie こちら。

gulp-sourcemaps を使用しようとしていますが、何らかの理由でクラッシュしvar sourcemaps = require('sourcemaps')ます (この行がファイルにある場合にのみクラッシュします)。

gulp ファイル:

var gulp = require('gulp');
var uglify = require('gulp-uglify');
var concat = require('gulp-concat');
var sourcemaps = require('gulp-sourcemaps');


gulp.task('generateApp', function () {
    return gulp.src([some paths...])
        .pipe(sourcemaps.init())
        .pipe(concat('app.min.js'))
        .pipe(uglify())
        .pipe(sourcemaps.write())
        .pipe(gulp.dest(path...));
});

エラー :

C:\Projets\node_modules\strip-bom\index.js:2
module.exports = x => {
                    ^
SyntaxError: Unexpected token >
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (C:\Projets\node_modules\gulp-sourcemaps\src\init.js:10:14)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)

この種のエラーに遭遇した人はいますか? 私はそれをグーグルで検索しようとしましたが、成功しませんでした。

4

1 に答える 1

12

同じエラーが発生し始めたので、コードを次のように置き換えて修正しましたC:\Projects\node_modules\strip-bom\index.js

'use strict';
module.exports = function (x) {
    if (typeof x !== 'string') {
        throw new TypeError('Expected a string, got ' + typeof x);
    }

    // Catches EFBBBF (UTF-8 BOM) because the buffer-to-string
    // conversion translates it to FEFF (UTF-16 BOM)
    if (x.charCodeAt(0) === 0xFEFF) {
        return x.slice(1);
    }

    return x;
};

npm rebuild node-sassそれから、それを再び機能させるために走らなければなりませんでした。これは、 Strip-bomノード モジュールの古いバージョンに問題があるようです。

詳細については、こちらをご覧ください: https://github.com/sindresorhus/strip-bom/commit/e2a3c3b83706ee5baac284f3862d3f6b9e1564e5

更新された回答:

このエラーは、古いバージョンの Node.js を使用しているために発生します。Strip-bom モジュールは、 Node 5.0+ を必要とするES2015 (ES6)構文を使用するようになりました。(ノードの ES2015 サポート リストはこちらを参照してください)

Node のバージョンをテストするには、次を実行します。

node -v

5.0 未満の場合は、更新する必要があります。Node の最新バージョンは、次の場所からダウンロードできます。

https://nodejs.org/en/

新しいバージョンの Node をインストールした後も、npm rebuild node-sassGulp を起動して再び実行するために実行する必要がありました。

ノードのバージョンを更新したくない場合でも、前者の回答は機能しますが、Louisが指摘したように、ノード モジュール ファイルを手動で編集することはベスト プラクティスではありません。

于 2016-10-24T23:54:15.880 に答える