首页 > 其他分享 >ts项目搭建

ts项目搭建

时间:2022-08-27 01:33:35浏览次数:41  
标签:项目 babel less ts loader webpack html 搭建

1.创建文件夹&项目初始化

npm init -y

2.下载

npm i -D webpack webpack-cli webpack-dev-server typescript ts-loader
npm i -D @babel/core @babel/preset-env  babel-loader core-js
npm i -D  css-loader less  less-loader style-loader  html-webpack-plugin clean-webpack-plugin

3.创建src根文件夹和index.html(作为编译模板)index.ts(作为入口文件)

 

4.使用一下命令创建tsconfig.json

tsc --init

5.配置package.json


 "main":"./src/index.ts", //要修改正确的入口文件哦
"scripts": {
    "start":"webpack-dev-server",  //也可以这样配置 "start":"webpack-dev-server --open Chrome"
// 或者这样的"start":"webpack-dev-server --open 'Google Chrome'" 
// 看人家这样配置没报错,我的报错,故用最简单的配置了(苦笑)
  "build":"webpack" },
//贴上我下载的依赖包版本
"devDependencies": {     "@babel/core": "^7.18.13",     "@babel/preset-env": "^7.18.10",     "babel-loader": "^8.2.5",     "clean-webpack-plugin": "^4.0.0",     "core-js": "^3.25.0",     "css-loader": "^6.7.1",     "html-webpack-plugin": "^5.5.0",     "less": "^4.1.3",     "less-loader": "^11.0.0",     "postcss-loader": "^7.0.1",     "postcss-preset-env": "^7.8.0",     "style-loader": "^3.3.1",     "ts-loader": "^9.3.1",     "typescript": "^4.8.2",     "webpack": "^5.74.0",     "webpack-cli": "^4.10.0",     "webpack-dev-server": "^4.0.0"   }
 

 

6.配置webpack.config.js

const path = require('path');
//引入html插件
const HTMLWebpackPlugin = require('html-webpack-plugin');
const { CleanWebpackPlugin } = require('clean-webpack-plugin')
module.exports = {
  "mode": "development",
  //指定入口文件
  entry: "./src/index.ts",
  //指定打包文件所在的目录
  output: {
    //指定打包文件的目录
    path: path.resolve(__dirname, './dist'),
    //打包后文件的文件
    filename: 'bundles.js'
  },
  devServer: {
    static: {
      directory: path.join(__dirname, './'),
      watch: true
  }
},

  //指定webpack打包时要是用的模块
  module: {
    //指定要加载的规则
    rules: [
      {
        // test指定是规则生效的文件
        test: /\.ts$/,
        use: [{
          //指定预加载器
          loader: "babel-loader",
          //配置babel
          options: {
            //配置预定义的环境
            presets: [
              [
                //制定环境插件
                "@babel/preset-env",
                //配置信息
                {
                  //要兼容的浏览器
                  targets: {
                    "chrome": "104"
                  },
                  //指定corejs版本
                  "corejs": "3",
                  //使用corejs的方式usage表示按需加载
                  "useBuiltIns": "usage"
                }
              ]
            ]

          }
        }, 'ts-loader'],
        //要排除的文件
        exclude: /node-modules/
      },{
        test:/\.less$/,
        use:[
          "style-loader",
          "css-loader",
          //引入postcss
          {
            loader:"postcss-loader",
            options:{
              postcssOptions:{
                plugins:[
                  [
                    "postcss-preset-env",
                    {
                      browsers:'last 2 versions'
                    }
                  ]
                ]
              }
            }
          },
          "less-loader"
        ]
      }
    ]
  },
  //配置webpack插件
  plugins: [
    //自动生成html文件 并引入相关的资源
    new HTMLWebpackPlugin({
      title: 'project',
      //模板选项 根据模板生成html文件
      template: "./src/index.html"
    }),
    new CleanWebpackPlugin()
  ],
  //用来设置引用的模块
  resolve: {
    extensions: ['.ts', '.js']
  }
}

 7.写点东西看看效果

src/index.html
<div id="main"></div>

src/style/index.less
//设置变量
@bg-color: #b7d438;
@p-color:pink;
// 清除默认样式
*{
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}
//主窗口样式
#main{
  width: 360px;
  height: 420px;
  background-color:@p-color;
}
// 引入样式文件
//引入样式
import './style/index.less'


执行 npm start

 

 虽然很简单,但仍出现未曾料想的错误,诸多波折,记录一下,自己要不断加油!!!

标签:项目,babel,less,ts,loader,webpack,html,搭建
From: https://www.cnblogs.com/guohuimin/p/16629694.html

相关文章

  • TVM 安卓环境搭建部署
    安装jdk从java中https://www.oracle.com/java/technologies/downloads/#java17中下载jdk17wgethttps://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven......
  • [转] git如何让别人参加入你的项目开发?
    我们自己远程仓库进行通信,需要将sshkey配置到自己的账户下既可以了。但是如果让别人参加进自己的项目开发,需要把别人的sshkey配置到自己的账户下吗?如果是自己搭建了简......
  • 猿大师播放器网页播放海康威视RTSP流闪退,用新版VLC播放器播放也闪退,但是用某个老版本V
    问:我们用猿大师播放器在网页中播放我们某一路RTSP流刚播放几秒钟就会自动闪退(播放其他的RTSP视频流是没问题的,延迟也很低,能到300毫秒左右),我们尝试过用新版版的VLC播放器......
  • 【题解】CF1007D Ants
    传送门题意:有\(m\)对链,每对链要选择一条,使得选择的链两两不交,求一组方案。题解:一眼看上去就是一个2-sat,考虑一种暴力的做法,枚举每一条边,覆盖这条边的链两两连边。......
  • 使用jad反编译jar/war包项目
    使用jd-gui,只能反编译具体一个.class文件,不能完成整个项目的反编译;而jad.exe能够满足反编译整个项目的需求。首先,下载jad.exe下载地址:https://varaneckas.com/jad/解压......
  • 17 - Docker来部署flaskDemo项目
    README.md文件内容:#flaskDemo本接口项目的技术选型:Python+Flask+MySQL+Redis,通过Python+Flask来开发接口使用MySQL来存储用户信息使用Redis用于存储token目......
  • C语言字符串处理函数 gets()和fgets()的区别及使用
    字符串函数(Stringprocessingfunction)也叫字符串处理函数,指的是编程语言中用来进行字符串处理的函数。本文主要介绍C语言中符串处理函数gets()和fgets()的区别使用方法,......
  • IDEA 设置项目文件编码
    1.打开【Setting】2.设置项目文件编码。说明:Transparentnative-to-asciiconversion主要用于转换ascii,一般都要勾选,不然Properties文件中的注释显示的都不会是中......
  • 前端项目实战22-前端处理二进制流
    constdownURL=window.URL.createObjectURL(newBlob([data])); //data为获取到的二进制数据 constlistNode=document.createElement("a"); //这里注意:非同......
  • 前端项目实战23-前端上传文件进行数据绑定用fileList
    <Uploadname="file"action="xxxx"onChange={handleChange}......