Webpack 用の wxml ローダー
この wxml は Wechat ミニ プログラム用のマークアップ言語であることに注意してください。
yarn add -D wxml-loader
ファイルを抽出するためにファイルローダーを使用する必要がある場合もあります。
{
test : / .wxml$ / ,
include : / src / ,
use : [
{
loader : 'file-loader' ,
options : {
name : '[name].[ext]' ,
useRelativePath : true ,
context : resolve ( 'src' ) ,
} ,
} ,
{
loader : 'wxml-loader' ,
options : {
root : resolve ( 'src' ) ,
enforceRelativePath : true ,
} ,
} ,
] ,
}
root
(文字列): 必要なソースのルート パスenforceRelativePath
(ブール値): 各ファイルのroot
相対 URL を生成する場合は true にする必要があります。 true
に設定することをお勧めしますpublicPath
(文字列): デフォルトは webpack Output.publicPathtransformContent(content, resource)
(関数): コンテンツを変換します。コンテンツ文字列を返す必要があります。transformUrl(url, resource)
(関数): URL を変換し、URL を返す必要があります。minimize
(ブール値): 最小化します。デフォルトはfalse
現在、 wxml-loader
動的パス、つまり<image src="./images/{{icon}}.png" />
を解決できませんでした。 copy-webapck-plugin
使用して、これらのリソースを dist ディレクトリに手動でコピーしてください。詳細については #1 を参照してください (中国語)。
このローダーは Alipay ミニ プログラムとも互換性があります。 Webpack 構成で test test: /.axml$/
の代わりにtest: /.wxml$/
を使用していることを確認する必要があります。
wxapp-webpack-plugin を使用し、 Targets.Alipay
Webpack ターゲットとして設定している場合、デフォルトで、 transformContent()
およびtransformUrl()
オプションが自動的に設定され、 transformContent()
関数はwx:attr
属性をa:attr
に変換します。そして、 transformUrl()
関数は、 .wxml
拡張子を.axml
に自動的に変換します。つまり、ミニ プログラムを一度作成すれば、Wechat と Alipay の両方のミニ プログラムを構築できるということです。
webpack.config.babel.js
import WXAppWebpackPlugin , { Targets } from "wxapp-webpack-plugin" ;
export default env => ( {
// ...other
target : Targets [ env . target || "Wechat" ] ,
module : {
rules : [
// ...other,
{
test : / .wxml$ / ,
use : [
{
loader : "file-loader" ,
options : {
name : `[name]. ${ env . target === "Alipay" ? "axml" : "wxml" } `
useRelativePath : true ,
context : resolve ( 'src' ) ,
} ,
} ,
{
loader : 'wxml-loader' ,
options : {
root : resolve ( 'src' ) ,
enforceRelativePath : true ,
} ,
} ,
]
}
]
} ,
plugin : [
// ...other
new WXAppWebpackPlugin ( )
]
} ) ;
webpack
使用してWeiXin App
開発する完全なギルドについては、私の wxapp-boilerplate リポジトリをチェックしてください。
マサチューセッツ工科大学