安装scss_React Native + Typescript + Scss开发配置过程

React Native + Typescript + Scss开发配置过程

开发工具

  • Visual Studio Code
  • React Native Tools扩展

Typescript支持

入口文件index.js必须保持原文件名,不可改名。

初始化typescript编译配置

yarn tsc --init --pretty --jsx react-native

0.57+的Typescript

Typescript is supported by default on React Native 0.57+

0.57之前的typescript支持

安装依赖

yarn add --dev typescript react-native-typescript-transformer @types/react @types/react-native @types/jest @types/react-test-renderer

初始化tsc配置

yarn tsc --init --pretty --jsx react

创建rn-cli.config.js配置文件,配置代码

module.exports = {
    getTransformModulePath() {
      return require.resolve('react-native-typescript-transformer');
    },
    getSourceExts() {
      return ['ts', 'tsx'];
    },
  };

0.57+的scss支持

增加scss支持能独立分离出scss相关的拼写检查、智能提示;但由于react Native中是像素布局是没有单位的,而在scss中必须携带单位,如果不带单位则会导致scss无法编译。scss生成的jscss语义不变,但内容相对啰嗦。另外:书写scss要特别注意。

yarn add --dev react-native-sass-transformer node-sass

rn-cli.config.js 配置代码

const { getDefaultConfig } = require("metro-config");

module.exports = (async () => {
  const {
    resolver: { sourceExts }
  } = await getDefaultConfig();
  return {
    transformer: {
      babelTransformerPath: require.resolve("react-native-sass-transformer")
    },
    resolver: {
      sourceExts: [...sourceExts, "scss", "sass"]
    }
  };
})();

单元测试

yarn --dev add typescript ts-jest

在package.json中增加jest配置

"jest": {
    "preset": "react-native",
    "moduleFileExtensions": [
      "js",
      "jsx",
      "json",
      "ts",
      "tsx"
    ],
    "testMatch": [
      "**/__tests__/**/*.(js|ts)?(x)",
      "**/?(*.)+(spec|test).(js|ts)?(x)"
    ],
    "transform": {
      "^.+.js$": "<rootDir>/node_modules/react-native/jest/preprocessor.js",
      ".(ts|tsx)$": "ts-jest"
    }
  }

或者使用ts-jest外部配置

yarn ts-jest config:init

使用react-web可将react-native无缝转为wap

试水之后发现:"使用SCSS开发React-Native是一个极其糟糕的主意。"

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值