【问题标题】:What is more performant way to use TypeScript with Webpack?将 TypeScript 与 Webpack 一起使用的性能更高的方法是什么?
【发布时间】:2018-07-10 21:20:50
【问题描述】:

在 Typescript 文档中有 an example 使用 ts-loader 插件来消化 TypeScript 文件,如下所示:

module.exports = {
    entry: "./src/index.tsx",
    output: {
        filename: "bundle.js",
        path: __dirname + "/dist"
    },

    // Enable sourcemaps for debugging webpack's output.
    devtool: "source-map",

    resolve: {
        // Add '.ts' and '.tsx' as resolvable extensions.
        extensions: [".ts", ".tsx", ".js", ".json"]
    },

    module: {
        rules: [
            // All files with a '.ts' or '.tsx' extension will be handled by 'awesome-typescript-loader'.
            { test: /\.tsx?$/, loader: "awesome-typescript-loader" },

            // All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'.
            { enforce: "pre", test: /\.js$/, loader: "source-map-loader" }
        ]
    },

    // When importing a module whose path matches one of the following, just
    // assume a corresponding global variable exists and use that instead.
    // This is important because it allows us to avoid bundling all of our
    // dependencies, which allows browsers to cache those libraries between builds.
    externals: {
        "react": "React",
        "react-dom": "ReactDOM"
    }
};

其他选项是使用tsc(Typescript 编译器)作为package.json script 的一部分

"build": "tsc && webpack"

在 Webpack 中使用 TypeScript 的哪种方式更高效?

【问题讨论】:

    标签: typescript webpack


    【解决方案1】:

    我建议使用ts-loader,因为它允许更细粒度的优化。您可以使用cache-loaderhard-source-webpack-plugin 缓存中间结果,使用happy-pack 在多个线程中运行它。 Webpack 也在 webpack 5 milestone 中包含了一些优化

    PS。关于awesome-typescript-loader - github page 涵盖了它和ts-loader 之间的所有差异。它不支持HappyPack,但另一方面在 babel 中有缓存和更好的集成。我建议尝试这两个选项并选择哪个更快,它基本上是配置中的几行更改。

    【讨论】:

      猜你喜欢
      • 2020-07-10
      • 1970-01-01
      • 2011-12-16
      • 1970-01-01
      • 2020-01-14
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 2018-04-10
      相关资源
      最近更新 更多