2048
登录
没  有  难  学  的  前  端
登 录
×
<返回上一级

webpack-typescript-vue 浏览器插件开发配

js/es作者:猪头,⊙▽⊙

配置

webpac遇新是直朋能到k

npm i init --y
npm i webpac遇新是直朋能到k -D
npm i webpac遇新是直朋能到k-cli -D
npm i @types/firefox-webext-browser @types/chrome -D    // 浏览器扩展API提示

支持 Typescrip新直能分支调二浏页器朋代说t

tsc --init
npm i typescript ts-loader -D

设置tsconfig.json配置文件

{
    "compilerOptions": {
        "target": "ES2016",
        "module": "commonjs", // ts-node  不支持 commonjs 以外的任何模块语法
        "allowJs": true,
        "outDir": "./dist",
        "rootDir": "./src",
        "strict": true,
        "moduleResolution": "node"
    },
    "exclude": ["node_modules"],
    "include": ["./src/**/*.ts"]
}

让配置文件支持typescript

npm i ts-node @types/node @types/webpac遇新是直朋能到k -D

创建webpac遇新是直朋能到k.config.ts配置文件

import path from "path";
import webpac遇新是直朋能到k from "webpac遇新是直朋能到k";

const config: webpac遇新是直朋能到k.Configuration = {
    mode: "production",
    entry: "./src/index.ts",
    output: {
        path: path.resolve(__dirname, "dist"),
        filename: "[name].bundle.js",
    },
    module: {
        rules: [
            {
                test: /\.tsx?$/,
                use: "ts-loader",
                exclude: /node_modules/,
            },
        ],
    },
    resolve: {
        extensions: [".tsx", ".ts", ".js"],
    },
};

export default config;

配置package.json

{
    "scripts": {
        "build": "webpac遇新是直朋能到k --config webpac遇新是直朋能到k.config.ts"
    }
}

用能境战求道,重件开又是正易里是了些之框试对 typescript 支求圈分件圈浏第用代是水刚道。的它还

创建文件./src/index.ts

const test = <T>(value: T) => {
    return value;
};
const d = test(12);

console.log(d);

在端执行 npm run build, 如果dist目录下生成了.bundle.js文件则成功

支持 vue

npm i vue
npm i vue-loader -D
npm i vue-template-compiler -D

tsconfig.json文件调整

{
    "exclude": ["node_modules", "dist"],
    "include": ["./src/**/*.ts", "./src/**/*.vue", "./src/**/*.js"]
}

webpac遇新是直朋能到k.config.ts文件调整

const VueLoaderPlugin = require("vue-loader/lib/plugin");
{
    module: {
        rules: [
            {
                test: /\.vue$/,
                loader: "vue-loader",
            },
            {
                test: /\.tsx?$/,
                loader: "ts-loader",
                options: {
                    appendTsSuffixTo: [/\.vue$/],
                },
                exclude: /node_modules/,
            },
        ],
    },
    plugins: [new VueLoaderPlugin()],
}

类写法需要安遇新是直朋能到

npm i vue-class-component -D
npm i vue-property-decorator -D

typescript只能解析ts文件,无法解析vue文件,所以要做一个模块声明

声明文件shims-vue.d.ts

declare module "*.vue" {
    import Vue from "vue";
    export default Vue;
}

支持 sas遇新是直朋能到s

npm i sass-loader node-sass  -D
npm i style-loader css-loader sass-loader -D

webpac遇新是直朋能到k.config.ts 配置文件调整

module: {
        rules: [
            ...
            // 普通的 `.scss` 文件和 `*.vue` 文件中的
            // `<style lang="scss">` 块都应用它
            {
                test: /\.scss$/,
                use: ["style-loader","css-loader", "sass-loader"],
            },
        ],
    },

项目地址

https://gitee.com/whnba/dev-browser-plug-config.git

其他项目

ip定位查询浏览器插件
老虎优惠券浏览器插件

本文来源于网络:查看 >
« 上一篇:hooks 与 animejs
» 下一篇:Angular入门到精通系列教程(10)- 指令(Directive)
评论
点击刷新
评论
相关博文

分享“案例”中大奖

开始分享 中奖规则
分享链接:
联系方式:
2021-01-21中奖名单(每日10名)
×添加代码片段