2

私のプロジェクトは node-sass を実行していますが、それを sass (dart-sass) に変更することにしました。これは、python、g++ のインストールを避け、make を実行するためだけに npm install を実行するためです。 .

だから私は走った

$ npm uninstall node-sass
$ npm install sass

npm run build( ) を実行すると正常に動作しますが、 ( )vue-cli-service buildで継続的インテグレーションに失敗しました。npm run test:unitvue-cli-service test:unit

完全なエラーは次のとおりです。

 FAIL  tests/unit/example.spec.ts
● Test suite failed to run[vue-jest] 
Error: You are trying to use "scss". node-sass is missing.

    To install run:  
npm install --save-dev node-sass
at error (node_modules/vue-jest/lib/throw-error.js:2:9)
at module.exports (node_modules/vue-jest/lib/ensure-require.js:38:5)                                                                                                                                                                     at module.exports (node_modules/vue-jest/lib/compilers/scss-compiler.js:20:3)
at processStyleByLang (node_modules/vue-jest/lib/process-style.js:11:82)
at processStyle (node_modules/vue-jest/lib/process-style.js:20:17)
at node_modules/vue-jest/lib/process.js:93:13
at Array.map (<anonymous>)
at Object.module.exports [as process] (node_modules/vue-jest/lib/process.js:90:8)
Test Suites: 1 failed, 1 total
Tests:       0 total
Snapshots:   0 total
Time:        1.265s, estimated 2s

このエラーを修正するにはどうすればよいですか? node-sass に戻りたくありません。

4

1 に答える 1

4

vue-jestが単体テストで CSS をコンパイルしようとしているために、このエラーが発生していると思います。( sass)dart-sassパッケージにはこの機能はありませんが、node-sassあります。

単体テストでスタイルをコンパイルするという代償を払って簡単に解決するには、vue-jest がスタイルをコンパイルしないようにすることです。

//package.json `"jest":` property or jest.config.js `module.exports = `
{
  "globals": {
     "vue-jest": {
       "experimentalCSSCompile": false
      }
   }
}

私は使用していますvue-jest@3.0.7

vue-jest docs から:

ExperimentalCSSCompile:
ブール値 デフォルト true。
CSS コンパイルをオフにする

このエラーの詳細については、この日本語のブログ投稿 (ここで自動翻訳) も見つけました。

これの副作用は、単体テストがはるかに高速に実行されるようになったことです。

于 2021-05-14T06:37:10.060 に答える