Nuxtjs, как настроить веб-пакет для запуска npm, генерировать при импорте файла CSS для компонента? - PullRequest
0 голосов
/ 01 декабря 2019

Примечание: я почти не знаю веб-пакетов, но пытаюсь это выяснить.

У меня есть простой компонент vue:

<template>
  <div class="d-appendix">
    <slot></slot>
  </div>
</template>

<script>
export default {
}
</script>

<style src='../styles/d-appendix.css'>
</style>

и файл css: andCSS

.d-appendix {
  contain: layout style;
  font-size: 0.8em;
  line-height: 1.7em;
  margin-top: 60px;
  margin-bottom: 0;
  border-top: 1px solid rgba(0, 0, 0, 0.1);
  color: rgba(0,0,0,0.5);
  padding-top: 60px;
  padding-bottom: 48px;
}

.d-appendix h3 {
  grid-column: page-start / text-start;
  font-size: 15px;
  font-weight: 500;
  margin-top: 1em;
  margin-bottom: 0;
  color: rgba(0,0,0,0.65);
}

.d-appendix h3 + * {
  margin-top: 1em;
}

.d-appendix ol {
  padding: 0 0 0 15px;
}

@media (min-width: 768px) {
  .d-appendix ol {
    padding: 0 0 0 30px;
    margin-left: -30px;
  }
}

.d-appendix li {
  margin-bottom: 1em;
}

.d-appendix a {
  color: rgba(0, 0, 0, 0.6);
}

.d-appendix > * {
  grid-column: text;
}

.d-appendix > .d-footnote-list,
.d-appendix > .d-citation-list,
.d-appendix > .distill-appendix {
  grid-column: screen;
}

работает npm run generate бросков:

ERROR in ./styles/d-appendix.css?vue&type=style&index=0&lang=css& (./node_modules/css-loader/dist/cjs.js??ref--3-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--3-oneOf-1-2!./styles/d-appendix.css?vue&type=style&index=0&lang=css&)
Module build failed (from ./node_modules/css-loader/dist/cjs.js):
ValidationError: CSS Loader Invalid Options

options should NOT have additional properties

    at validateOptions (/Users/sumner/Projects/vdistill/frontend/node_modules/css-loader/node_modules/schema-utils/src/validateOptions.js:32:11)
    at Object.loader (/Users/sumner/Projects/vdistill/frontend/node_modules/css-loader/dist/index.js:44:28)
 @ ./styles/d-appendix.css?vue&type=style&index=0&lang=css& (./node_modules/vue-style-loader??ref--3-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--3-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--3-oneOf-1-2!./styles/d-appendix.css?vue&type=style&index=0&lang=css&) 4:14-253
 @ ./styles/d-appendix.css?vue&type=style&index=0&lang=css&
 @ ./components/DAppendix.vue
 @ ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib??vue-loader-options!./pages/index.vue?vue&type=script&lang=js&
 @ ./pages/index.vue?vue&type=script&lang=js&
 @ ./pages/index.vue
 @ ./.nuxt/router.js
 @ ./.nuxt/index.js
 @ ./.nuxt/client.js
 @ multi ./.nuxt/client.js

Я сделал несколько Google, и попытался изменить nuxt.config.js, чтобы иметь

// inside build
  extend (config, ctx) {
       config.module.rules.push({
        test: /\.css$/,
        loader: 'css-loader',
        options: {
          modules: true,
          localIdentName: '[local]--[hash:base64:5]',
          import: true,
          importLoaders: true,
        }
      })

Это сейчасдает мне:

ERROR in ./.nuxt/components/nuxt-loading.vue?vue&type=style&index=0&lang=css& (./node_modules/css-loader/dist/cjs.js??ref--3-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--3-oneOf-1-2!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib??vue-loader-options!./.nuxt/components/nuxt-loading.vue?vue&type=style&index=0&lang=css&)
Module build failed (from ./node_modules/postcss-loader/src/index.js):
SyntaxError

(1:1) Unknown word

> 1 | exports = module.exports = require("../../node_modules/css-loader/dist/runtime/api.js")(false);
    | ^
  2 | // Module
  3 | exports.push([module.id, "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.nuxt-progress {\n  position: fixed;\n  top: 0px;\n  left: 0px;\n  right: 0px;\n  height: 2px;\n  width: 0%;\n  opacity: 1;\n  transition: width 0.1s, opacity 0.4s;\n  background-color: #fff;\n  z-index: 999999;\n}\n\n.nuxt-progress.nuxt-progress-notransition {\n  transition: none;\n}\n\n.nuxt-progress-failed {\n  background-color: red;\n}\n", ""]);

Как мне заставить мой импорт CSS работать?

Репо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...