webpack 'ts-loader'是否需要安装'typescript'才能工作?对我来说,它工作得很好

9o685dep  于 2023-10-19  发布在  Webpack
关注(0)|答案(1)|浏览(172)

使用ts-loader的npm文档建议安装typescript,webpack文档中的官方Typescript guide也是如此,但实际上没有提供任何理由。对我来说,一切都是成功地建立没有typescript被安装。我错过了什么?
我当前的设置:
webpack.config.js

const webpack = require("webpack");
const HtmlWebpackPlugin = require("html-webpack-plugin");

module.exports = {
    // mode: 'development',
    entry: './src/index.ts',
    module: {
        rules: [
            {
                test: /\.ts$/,
                use: 'ts-loader'
            }
        ]
    },
    output: {
        filename: "bundle.js",
    },
    plugins: [
        new HtmlWebpackPlugin(),
        new webpack.ProgressPlugin()
    ]
}

package.json

{
  ...
  "scripts": {
    "webpack": "webpack",
    "build:dev": "npm run webpack -- --mode development",
    "start": "npm run webpack serve -- --mode development"
  },
  "author": "ranemihir",
  "license": "ISC",
  "devDependencies": {
    "html-webpack-plugin": "^5.5.3",
    "ts-loader": "^9.4.4",
    "webpack": "^5.88.2",
    "webpack-cli": "^5.1.4",
    "webpack-dev-server": "^4.15.1"
  }
}

产出:

asset bundle.js 1.3 KiB [compared for emit] (name: main)
asset index.html 233 bytes [compared for emit]
./src/index.ts 111 bytes [built] [code generated]
webpack 5.88.2 compiled successfully in 2099 ms
a8jjtwal

a8jjtwal1#

正如你在他们的package.json中看到的,typescript被标记为对等依赖。
在npm v7之前,peer dependencies不会自动安装,如果你的包不依赖于TypeScript,你会得到一个错误。从npm v7开始,peer dependencies会自动安装。显然你使用的是npm版本7或更高版本,所以会安装TypeScript。
尽管如此,我还是建议您将typescript添加到项目的依赖项中。ts-loader将始终安装最新版本的TypeScript(请注意"*")。每当TypeScript发布具有重大更改的新版本时,它都会安装在项目中。因此,如果有人在一段时间后打开项目并运行npm install,则很有可能构建被破坏。

相关问题