textlint / textlint-scripts

Move to textlint monorepo
https://github.com/textlint/textlint/tree/master/packages/textlint-scripts
8 stars 1 forks source link

3.0.0 #28

Closed azu closed 5 years ago

azu commented 5 years ago

3.0.0 Beta-0

This is beta release

You can try it:

npm install textlint-scripts@beta --save-dev

Summary

Breaking Changes 🔥

textlint-script build output compatible code for ES2015+. It means that output code is not work on IE11.

Support Async Function ⭐️

Async/Await is supported by default.

Inline static resources by default ⭐️

textlint-script build inline Node fs calls with babel-plugin-static-fs for browser compatibility.

const fs = require("fs");
const path = require("path");
const text = fs.readFileSync(path.join(__dirname, "readme.md"), "utf-8");

will be

const fs = require("fs");
const path = require("path");
const text = "README CONTENT"

📝 You want to disable this behavior, set NO_INLINE env like NO_INLINE=1 textlint-scripts build.

Support TypeScript 🌟

textlint-script build and textlint-script test support TypeScript. You can write textlint rule with TypeScript.

Migration Guide

If you want to write textlint rule with TypeScript, you can migrate it by following steps:

  1. Install TypeScript env
npm install textlint-scripts@beta --save-dev
npm install --save-dev typescript ts-node @textlint/types @types/node
  1. Rename .js to .ts
  2. Fix TypeScript Error

@textlint/types provide types for textlint rule.

import { TextlintRuleModule, TextlintRuleReporter } from "@textlint/types";
export interface RuleOptions {
  foo: boolean;
}
const report: TextlintRuleReporter<RuleOptions> = function(context, options = {}) {
    const { Syntax, RuleError, report, getSource } = context;
    return {
        [Syntax.Str](node) {
            // ...
        }
    };
};
export default {
    linter: report,
    fixer: report
} as TextlintRuleModule;
  1. npm test and npm run build.

Migration Scrips: @textlint/migrate-textlint-scripts-typescript

We also prepare migration script from textlint-script with JavaScript to textlint-script with TypeScript.

Migration script help you to do step 1.

# in you textlint rule project
npx @textlint/migrate-textlint-scripts-typescript

For more details, see @textlint/migrate-textlint-scripts-typescript.

Examples:

azu commented 5 years ago
azu commented 5 years ago
azu commented 5 years ago

Browser suppport test tool https://github.com/textlint/browser-run

azu commented 5 years ago
azu commented 5 years ago

We will release it at tommorow.

If you found an issue, please tell us.

Try to beta:

npm install -D textlint-scripts@3.0.0-beta.2
azu commented 5 years ago

Release https://github.com/textlint/textlint-scripts/releases/tag/3.0.0 🎉