设置 webpack 和 vue3

Posted

技术标签:

【中文标题】设置 webpack 和 vue3【英文标题】:setup webpack and vue3 【发布时间】:2021-04-09 14:13:49 【问题描述】:

我正在尝试使用 webpack 和 typescript 设置 vue3。 目前我遇到的问题是每当我尝试运行webpack serve时,浏览器控制台内都会出现警告:

runtime-core.esm-bundler.js:3413 You are running the esm-bundler build of Vue. It is recommended to configure your bundler to explicitly replace feature flag globals with boolean literals to get proper tree-shaking in the final bundle. See http://link.vuejs.org/feature-flags for more details.

我不明白。我的 webpack-config 如下:

const path = require("path")

module.exports = 
    mode: 'development',
    entry: './src/index.ts',
    devtool: 'inline-source-map',
    module: 
        rules: [
            
                test: /\.tsx?$/,
                use: 'ts-loader',
                exclude: /node_modules/,
            ,
        ],
    ,
    resolve: 
        alias: 
            vue: "vue/dist/vue.esm-bundler.js"
        ,
        extensions: ['.tsx', '.ts', '.js'],
    ,
    output: 
        filename: 'bundle.js',
        path: path.resolve(__dirname, 'dist'),
    ,

这是 tsconfig:


    "compilerOptions": 
        "outDir": "./dist/",
        "noImplicitAny": true,
        "module": "es6",
        "target": "es5",
        "allowJs": true,
        "moduleResolution": "node"
    

我想在没有此警告的情况下进行配置,然后继续支持 sfc!

【问题讨论】:

请查看***.com/a/64881079/8172857 查看本教程以了解没有 vue-cli 的 Vue v3 设置:frontendguruji.com/blog/… 【参考方案1】:

来自您在错误中获得的链接。

构建将在不配置这些标志的情况下运行,但强烈建议正确配置它们以便在最终捆绑包中获得适当的 tree-shaking。

这应该可以解决您的问题。

const path = require("path");
const webpack = require('webpack');

module.exports = 
    mode: 'development',
    entry: './src/index.ts',
    devtool: 'inline-source-map',
    module: 
        rules: [
            
                test: /\.tsx?$/,
                use: 'ts-loader',
                exclude: /node_modules/,
            ,
        ],
    ,
    resolve: 
        alias: 
            vue: "vue/dist/vue.esm-bundler.js"
        ,
        extensions: ['.tsx', '.ts', '.js'],
    ,
    output: 
        filename: 'bundle.js',
        path: path.resolve(__dirname, 'dist'),
    ,
    plugins: [
        new webpack.DefinePlugin(
            "__VUE_OPTIONS_API__": true,
            "__VUE_PROD_DEVTOOLS__": false,
        );
    ],

还有一点值得补充的是,@vue-cli 是 vue 项目的标准工具。

【讨论】:

以上是关于设置 webpack 和 vue3的主要内容,如果未能解决你的问题,请参考以下文章

使用 React 和 Webpack 设置 Airbnb ESLint

设置 webpack 和 vue3

Webpack css 设置和最佳实践

如何设置 webpack 以缩小和组合 scss 和 javascript 之类的 CodeKit?

markdown 使用Browsersync和Webpack进行设置

Jest 遇到了意外的令牌(React、Typescript、Babel、Jest 和 Webpack 设置)