remax.config.js 是 Remax 的配置文件
// remax.config.js 默認配置module.exports = {// boolean | RegExp 開啟或關閉 css modules,支持傳入正則表達式配置開啟的文件命名格式cssModules: /\.module\.(less|scss|css)$/,// 配置項目路徑,默認當前路徑cwd: process.cwd(),// 是否顯示 build 進度,默認顯示progress: true,// 指定代碼的根目錄,默認 srcrootDir: 'src',// build 目錄,默認 distoutput: 'dist',// 配置路徑別名alias: {},// 是否開啟 wxml/axml 文件壓縮compressTemplate: process.env.NODE_ENV === 'production',// 是否將 px 轉換為 rpx, 默認是 truepxToRpx: true,postcss: {options: {use: [['less',{paths: [// 可方便解析 node_modules 中樣式文件path.resolve(__dirname, 'node_modules'),// 可作為全局樣式目錄path.resolve(__dirname, 'src/assets/styles'),],},],// 其他樣式文件配置,比如sass, stylus, 如果有多種樣式文件,則也需要添加對應配置['stylus', {}],],},url: {// 是否自動將圖片轉換成 base64inline: false,// 轉換圖片的最大限制, 單位 KBmaxSize: 8,},// 其他postcss 插件, 會和默認的插件進行拼接plugins: [],// 是否開啟 watch 模式桌面提醒notify: false,},// 修改 rollup 的配置rollupOptions: options => {options.input.push('foo.js');return options;},};
如果你想針對平臺做一些配置,你可以通過設置環(huán)境變量來控制,如:
// PLATFORM=wechat// remax.config.js 默認配置module.exports = {output: 'dist/' + process.env.PLATFORM,};
通過上面的方式,可以針對不同的平臺定義不一樣的打包輸出路徑
Remax 支持直接在項目根目錄創(chuàng)建 babel.config.js 文件來自定義 babel 配置,例如:
// babel.config.jsmodule.exports = {plugins: ['loop-optimizer'],presets: [['remax',{// 是否使用 @babel/preset-typescript 轉換TS代碼typescript: true,// 例子:下面的 `decorators` 和 `classProperties` 可以使Mobx的裝飾器能正常工作// @babel/plugin-proposal-decorators 的選項,詳見 https://babeljs.io/docs/en/babel-plugin-proposal-decoratorsdecorators: {legacy: true,},// @babel/plugin-proposal-class-properties 的選項,詳見 https://babeljs.io/docs/en/babel-plugin-proposal-class-propertiesclassProperties: {loose: true,},},],],};
由于 babel7 的推薦以及項目目錄配置等問題,請使用 babel.config.js 文件而不是 .babelrc
記得安裝 babel-preset-remax,并將它加入到 presets 配置中
Remax 支持路徑別名配置, 默認配置 @/ 對應 src/,例如:
import Button from '@/components/Button';// 相當于import Button from 'project_cwd/src/components/Button';
你也可以通過 alias 自定義配置,如:
// remax.config.jsmodule.exports = {...// 配置路徑別名alias: {// 自動將 @components 指向 src/components'@components': './src/components',},};
Remax 支持引用 JSON 和 圖片 文件。用法如下:
import JSON from './index.json';console.log(JSON); // json的內容
import image from './index.png';<Image src={image} />;
Remax 用 config.js 定義小程序配置文件,以提高靈活性。
例如:
// app.config.jsmodule.exports = {navigationBarTitleText: '標題',...}
Remax 優(yōu)先讀取默認導出的配置,如果你開發(fā)的是多端共用的項目,則可以改為:
// app.config.jsconst title = '標題';// 微信exports.wechat = {navigationBarTitleText: title,};// 支付寶exports.alipay = {defaultTitle: title,};
這樣就可以根據 build 目標平臺自動選擇配置
app.config.js 對應小程序 app.json,頁面配置為對應頁面的 config.js,如,pages/index/index.js 的頁面配置為 pages/index/index.config.js
config 同樣支持 TypeScript:
// app.config.tsimport { AppConfig } from 'remax/wechat';const config: AppConfig = {navigationBarTitleText: '標題',...}export default config;
更多建議: