Я разрабатываю этот проект nuxtjs на Mac (все самые последние и лучшие), и локальные сборки и генерация работают нормально.Я использую sass-loader
в качестве зависимости разработчика, и мой nuxt.config.js
файл не очень отличается от значения по умолчанию:
module.exports = {
head: {
title: 'temp-www',
meta: [
{ charset: 'utf-8' },
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
{ hid: 'description', name: 'description', content: 'Nuxt.js project' }
],
link: [
{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
]
},
modules: [
[ 'nuxt-fontawesome', {
component: 'fa',
imports: [
{ set: '@fortawesome/fontawesome-free-brands' },
]
}],
],
loading: { color: '#3B8070' },
build: {
extend (config, { isDev, isClient }) {
if (isDev && isClient) {
config.module.rules.push({
enforce: 'pre',
test: /\.(js|vue)$/,
loader: 'eslint-loader',
exclude: /(node_modules)/
})
}
}
}
}
Затем я создал Dockerfile
, как это
FROM node:stretch
ENV NODE_ENV=production
ENV HOST=0.0.0.0
RUN mkdir -p /app
COPY . /app
WORKDIR /app
EXPOSE 3000
RUN npm install
RUN npm run build
CMD ["npm", "start"]
(и соответствующий .dockerignore
), но я получаю следующую ошибку при построении изображения.
ERROR in ./layouts/default.vue
Module not found: Error: Can't resolve 'sass-loader' in '/app/layouts'
@ ./layouts/default.vue 2:2-436
@ ./.nuxt/App.js
@ ./.nuxt/index.js
@ ./.nuxt/client.js
Там и в других файлах .vue
я использую sass в блоке, подобном <style lang="scss">
.Я попытался изменить это значение на sass
, но это не имеет значения.
Странно, этот вопрос говорит, что он должен работать, делая sass-loader
и node-sass
как deps времени выполнения, а не devtime deps,Я скептически пытался это сделать, и это ухудшалось, пока я не изменил атрибут lang
в блоках style
на scss
вместо sass
.В этом случае, и только в этом случае, я получил правильно построенное изображение.
Чего мне не хватает?