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