vue-cliとvuxベースのwebpack構成
4423 ワード
vue-cli構成に基づいてvuxのwebpack構成を使用
構成の目的ハンドヘルドflexibleレイアウトを利用して、フォントはdprから見ると サイズを変更する必要がある. postcss-px 2 rem自動変換ページのremを利用するが、フォントは変換せず、borderは1 pxソリューションで も変換しない.ブラウザ互換接頭辞 を自動的に追加 fastclickによるクリック遅延問題の解決 postcssとscssとlessをインストールしてlessがあって、私の神経病ではありませんて、プラグインと個人の習慣を引用します. vuxのpxをPXに変換します.weUIはremを使用していないので、emとpxを使用していますが、pxをremに変換することはできません.また、vuxには1 px.lessがあり、pxを大文字に変換することはできません.しかし、ブラウザはpxが大文字と小文字にかかわらず、pxに従って解析することができます.
問題解決1
そしてmain.jsで
ここまで呼び出すだけで、残りの使い方は以下で解決します.
問題解決2
まず、次のコマンドを実行します.
問題3もpostcssのプラグインなので一緒に解決します.(vuxのwebpackに従う場合は、問題3は省略可能)再インストール
Autoprefixerの構成については、以下の記事を参照してください.
次にbuildのvue-loader.conf.jsでpostcssを構成します.
ここで私の配置は手作業のレイアウト案に基づいて、自分で自分の適当な案を持つことができます.
その後、ハンドヘルド方式にはdprによってフォントが動的に変更されるので、CSSを書くときは後で注釈を付けて、以下のようにします.
私はborderを配置して変換しないので、
問題解決4
もしあなたが上の一歩一歩に従って来たならば、問題4はすでに解決して、もし来なかったら、以下の方法で解決すべきです.main.jsに導入
導入する前にインストールするには、私は書きません.もしあなたが忘れても間違いが見つからないなら、本当にこの仕事に向いていません.
問題解決5
この問題は繰り返さず、難しいのはscssをインストールすることで、次の方法で
問題解決6
これは最も難しくて、最も煩わしいので、weUIは意外にもremレイアウトを使っていないで、pxプラスemを使っています.そして探してみると、解決策がニワトリであることがわかりました.最近発見されたニワトリの解決策は比較的多く、例えば静音放送で音のないオーディオという乱暴な解決策は暇でもおしゃべりでもいいです.
余談微信iOS入金到帳音声注意開発総括
具体的なコードを貼ってください.vuxのwebpackに従ってインストールされている場合は、webpack.base.conf.jsファイルを開いて、一番下の
そうでなければ、このように変更して、
リファレンスドキュメント vuxドキュメント npm Webサイト 砂漠のハンドヘルドレイアウト案flexible vuxのgithub
npm i vue-cli -g //
vue init airyland/vux2 projectPath
cd projectPath
npm i
構成の目的
問題解決1
npm i lib-flexible -S
そしてmain.jsで
import 'lib-flexible'
ここまで呼び出すだけで、残りの使い方は以下で解決します.
問題解決2
まず、次のコマンドを実行します.
npm i postcss-loader postcss-px2rem -D
問題3もpostcssのプラグインなので一緒に解決します.(vuxのwebpackに従う場合は、問題3は省略可能)再インストール
npm i autoprefixer -D
Autoprefixerの構成については、以下の記事を参照してください.
次にbuildのvue-loader.conf.jsでpostcssを構成します.
postcss: [
require('autoprefixer')({
browsers: ['iOS >= 7', 'Android >= 4.1']
}),require('postcss-px2rem')({
rootValue: 75, // 750
selectorBlackList: ['html'],
mediaQuery: true,
propBlackList: ['border-radius','border'] // font-size , ['font-size']
})
]
ここで私の配置は手作業のレイアウト案に基づいて、自分で自分の適当な案を持つことができます.
その後、ハンドヘルド方式にはdprによってフォントが動的に変更されるので、CSSを書くときは後で注釈を付けて、以下のようにします.
.selector {
width: 150px;
height: 64px; /*px*/
font-size: 28px; /*px*/
border: 1px solid #ddd; /*no*/
}
.selector {
width: 2rem;
border: 1px solid #ddd;
}
[data-dpr="1"] .selector {
height: 32px;
font-size: 14px;
}
[data-dpr="2"] .selector {
height: 64px;
font-size: 28px;
}
[data-dpr="3"] .selector {
height: 96px;
font-size: 42px;
}
私はborderを配置して変換しないので、
/*no*/
、追加しなくてもいいし、追加しても役に立たない.ただし、フォントには必ず/*px*/
という注釈を使用します.これにより、dprに基づいてフォントサイズを変更できます.chromeのモバイルエンドデバッグツールではdpr変更はサポートされていないので、dpr表示効果を手動で変更できます.問題解決4
もしあなたが上の一歩一歩に従って来たならば、問題4はすでに解決して、もし来なかったら、以下の方法で解決すべきです.main.jsに導入
import FastClick from 'fastclick'
FastClick.attach(document.body)
導入する前にインストールするには、私は書きません.もしあなたが忘れても間違いが見つからないなら、本当にこの仕事に向いていません.
問題解決5
この問題は繰り返さず、難しいのはscssをインストールすることで、次の方法で
npm i node-sass sass-loader scss-loader -D
問題解決6
これは最も難しくて、最も煩わしいので、weUIは意外にもremレイアウトを使っていないで、pxプラスemを使っています.そして探してみると、解決策がニワトリであることがわかりました.最近発見されたニワトリの解決策は比較的多く、例えば静音放送で音のないオーディオという乱暴な解決策は暇でもおしゃべりでもいいです.
余談微信iOS入金到帳音声注意開発総括
具体的なコードを貼ってください.vuxのwebpackに従ってインストールされている場合は、webpack.base.conf.jsファイルを開いて、一番下の
module.exports
を以下の内容に変更する必要があります.module.exports = vuxLoader.merge(webpackConfig, {
plugins: ['vux-ui', 'progress-bar', 'duplicate-style',{
name: 'after-less-parser',
fn: function (source) {
if (this.resourcePath.replace(/\\/g, '/').indexOf('/vux/src/components') > -1) {
source = source.replace(/px/g, 'PX')
}
//
if (this.resourcePath.replace(/\\/g, '/').indexOf('App.vue') > -1) {
source = source.replace(/px/g, 'PX').replace(/-1PX/g, '-1px')
}
return source
}
}, {
name: 'style-parser',
fn: function (source) {
if (this.resourcePath.replace(/\\/g, '/').indexOf('/vux/src/components') > -1) {
source = source.replace(/px/g, 'PX')
}
// 1PX.less
if (source.indexOf('1PX.less') > -1) {
source = source.replace(/1PX.less/g, '1px.less')
}
return source
}
}]
})
そうでなければ、このように変更して、
module.exports
の内容を以上の内容に変更します.const vuxLoader = require('vux-loader')
const webpackConfig = originalConfig // module.exports webpackConfig
module.exports = vuxLoader.merge(webpackConfig, {
plugins: ['vux-ui']
})
リファレンスドキュメント