построить проблему
1. Как импортировать файлы js в голову?
фон: в
<head>
тег, введенный в виде встроенногоflexible.js
документ. Этот проект в основном представляет собой проект мобильного терминала, представляяflexible.js
Осознайте проблему адаптации мобильного терминала.
Nuxt.js черезvue-meta
Чтобы добиться управления тегом заголовка, его можно найти, просмотрев документацию, которую можно настроить следующим образом:
// nuxt.config.js
head: {
script: [
{ innerHTML: 'console.log("hello")', type: 'text/javascript', charset: 'utf-8'}
]
}
В результате генерируется html:
<script data-n-head="true" type="text/javascript" charset="utf-8">console.log("hello")</script>
мы обнаруживаемvue-meta
Избегайте кавычек и добавляйте__dangerouslyDisableSanitizers: ['script']
После этого эти символы больше не будут экранироваться, используйте это поле с осторожностью!
Далее возьмитеconsole.log("hello")
заменить содержимое наflexible.js
, после обновления конфигурации:
head: {
script: [{ innerHTML: require('./assets/js/flexible'), type: 'text/javascript', charset: 'utf-8'}],
__dangerouslyDisableSanitizers: ['script']
}
Наступить на яму удалось, следующая яма...
2. Как использовать препроцессор
Предыстория: в компоненте
<template>
,<script>
или<style>
На вышеперечисленном используются различные препроцессоры, и после добавления процессора консоль сообщает об ошибке.
<style lang="sass">
.red
color: red
</style>
Решение этой проблемы очень простое, просто установите эти зависимости.
npm install --save-dev node-sass sass-loader
Однако процесс решения был не очень гладким.При чтении китайского документа, игнорируя номер версии и следуя приведенным выше советам, было обнаружено, что это не может быть успешным.Позже, после различных отладок, решение было наконец найдено. Осознав это, я обнаружил, что номер версии китайского документа слишком низкий.Если вам нужно просмотреть документ, вы должны прочитать последнюю версию английского документа!
3. Как использовать px2rem
Предыстория: в css напишите px, передайте
px2rem loader
, перевести px в rem
В предыдущих проектах это было черезpx2rem loader
Реализовано, но в рамках проекта Nuxt.js добавление загрузчика css пока очень трудоемко, т.к.vue-loader
.
Я подумал о другом решении, вы можете использоватьpostcss
иметь дело с. допустимыйnuxt.config.js
Добавьте конфигурацию в файл, или вы можетеpostcss.conf.js
добавил в файл.
build: {
postcss: [
require('postcss-px2rem')({
remUnit: 75 // 转换基本单位
})
]
},
4. Как расширить конфигурацию веб-пакета
Предыстория: псевдоним каталога utils
Просто сказал, что Nuxt.js имеет встроенныйwebpack
конфигурации, если вы хотите расширить конфигурацию, вы можетеnuxt.config.js
добавил в файл. В то же время информация о конфигурации также может быть распечатана в этом файле.
extend (config, ctx) {
console.log('webpack config:', config)
if (ctx.isClient) {
// 添加 alias 配置
Object.assign(config.resolve.alias, {
'utils': path.resolve(__dirname, 'utils')
})
}
}
5. Как добавить плагин vue
Предыстория: я сам инкапсулировал плагин toast vue, так как процесс создания экземпляра vue не виден, я не знаю, когда его внедрять.
допустимыйnuxt.config.js
Добавьте конфигурацию плагинов в плагин, чтобы плагины загружались и импортировались до инициализации приложения Nuxt.js.
module.exports = {
plugins: ['~plugins/toast']
}
Файл ~plugins/toast.js:
import Vue from 'vue'
import toast from '../utils/toast'
import '../assets/css/toast.css'
Vue.use(toast)
6. Как изменить переменную среды NODE_ENV
Предыстория: В проекте установите 3
NODE_ENV
значение, соответствующее различным версиям. разработка, локальная разработка, выпуск, предварительная версия, производство, онлайн-версия. Среди них предварительная версия имеет больше vconsole, чем производственная версия.
// package.json
"scripts": {
"buildDev": "cross-env NODE_ENV=release nuxt build && backpack build",
"startDev": "cross-env NODE_ENV=release PORT=3000 node build/main.js"
},
Распечататьprocess.env.NODE_ENV
еще,production
.
В исходном коде рюкзака мы нашли ответ и выполняемbackpack build
команда, это будетprocess.env.NODE_ENV
превратиться вproduction
, жестко запрограммирован и не настраивается...
В отчаянии, только вprocess.env
вниз, добавить__ENV
атрибут, представляющийNODE_ENV
В это время информация напечатана на страницеprocess.env.__ENV undefined
, но могу распечататьprocess.env.NODE_ENV
.
можно настроитьnuxt.config.js
середина,env
свойства для решения проблемы.
env: {
__ENV: process.env.__ENV
}
проблема развития
1. Объект окна или документа не определен?
Предыстория: при внедрении сторонних плагинов или написании непосредственно в коде
window
, консоль выдаст предупреждение,window
неопределенный.
При возникновении этой проблемы сервер узла неwindow
илиdocument
объект. обходной путь черезprocess.browser
дифференцировать окружающую среду.
if (process.browser) {
// 引入第三方插件
require('***')
// 或者修改window对象下某一属性
window.mbk = {}
}
наконец
Эта статья в основном посвящена различным проблемам, возникающим в проекте, и если в статье есть какие-либо непонятные или неуместные выражения, вы можете критиковать и исправлять. Мы рекомендуем нашу официальную учетную запись Front-end New Horizons, очень серьезную официальную учетную запись ежедневного журнала, отсканируйте QR-код ниже, чтобы следовать!