Reputation: 1269
I am trying to load a stylus file within nuxt.
First I installed the stylus package using npm i -D stylus stylus-loader
Then I created a file called app.styl
in the assets/style
folder :
@require '~vuetify/src/stylus/settings/_colors'
$theme := {
primary: $blue.darken-2
accent: $blue.accent-2
secondary: $grey.lighten-1
info: $blue.lighten-1
warning: $amber.darken-2
error: $red.accent-4
success: $green.lighten-2
}
// Import Vuetify styling
@require '~vuetify/src/stylus/main'
.page
@extend .fade-transition
Then I added this to the css array in nuxt.config.js
:
/*
** Global CSS
*/
css: [{ src: '~assets/style/app.styl', lang: 'styl'}],
But then nuxt.js is throwing an error in build :
× error friendly-errors » Failed to compile with 1 errors
> log friendly-errors » This dependency was not found:
> log friendly-errors » * ..\assets\style\app.styl in ./.nuxt/App.js
> log friendly-errors » To install it, you can run: npm install --save ..\assets\style\app.styl
In my package.json
I have the version of nuxt to ^2.3.1, stylus to ^0.54.5 and stylus-loader of ^3.0.2.
Full link to package.json and nuxt.config.js
Can you find what is wrong with my setup using these informations ?
Upvotes: 0
Views: 1831
Reputation: 2335
A solution from issue discussion nuxt issue with ref to webpack stylus options and for nuxt latest (2.14.7),
extend webpack configuration mapping all loaders,
build: {
extend (config, { isDev, isClient }) {
[].concat(...config.module.rules.find(e => e.test.toString().match(/\.styl/)).oneOf.map(e => e.use.filter(e => e.loader == 'stylus-loader'))).forEach(stylus => {
Object.assign(stylus.options, {
//preferPathResolver: 'webpack',
sourceMap: true,
stylusOptions: {
//use: ['nib'],
include: ['~assets/styles'], //include all styl files from folder
import: [
'~assets/style/main.styl', //your main styl file
],
},
})
//console.log(stylus)
})
},
this imports the files and include stylus folder as well.
Upvotes: 0
Reputation: 3
This line worked for me. in nuxt.config.js
css: ['~assets/app.styl']
Upvotes: 1
Reputation: 2823
Nuxt asset folder path should be like this for nuxt js version 2
/*
** Global CSS
*/
css: [{ src: '~/assets/style/app.styl', lang: 'styl'}]
I hope it will solve your problem
Upvotes: 1