我正在尝试使用 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.
Run Code Online (Sandbox Code Playgroud)
我不明白。我的 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'),
},
}
Run Code Online (Sandbox Code Playgroud)
这是 tsconfig:
{
"compilerOptions": {
"outDir": "./dist/",
"noImplicitAny": true,
"module": "es6",
"target": "es5",
"allowJs": true,
"moduleResolution": "node"
}
}
Run Code Online (Sandbox Code Playgroud)
我想要一个没有这个警告的配置,然后继续支持 sfc!
小智 5
从你在错误中得到的链接。
构建将在不配置这些标志的情况下工作,但是强烈建议正确配置它们以便在最终包中获得适当的 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,
});
],
}
Run Code Online (Sandbox Code Playgroud)
还值得补充的是,@vue-cli是 vue 项目的标准工具。
| 归档时间: |
|
| 查看次数: |
1475 次 |
| 最近记录: |