var path = require("path");
module.exports = {
entry: "./src/index.js",
output: {
filename: "index.js",
path: path.resolve(__dirname, "./built/"),
publicPath: "/built/"
},
plugins: [],
module: {
rules: [
{
test: /\.js$/,
loader: "babel-loader"
},
{
test: /\.vue$/,
loader: "vue-loader",
options: {
}
}
]
}
};
使用上述配置,如果我运行 webpack ,它将获得正确的结果,但如果我运行 webpack-dev-server ,则索引中的源代码。 js不会被转换为ES5。换句话说,babel-loader只能在 webpack 时使用,但不能在 webpack-dev-server 中使用。
为什么?
答案 0 :(得分:0)
听起来你错过了babel-register。
$ npm i --save-dev babel-register
并将require('babel-register');
添加到条目文件的最顶部(index.js
)。
在此处查看类似问题: Making export default work with Babel, webpack and Node.js
答案 1 :(得分:0)
如果添加诸如"dev": "webpack-dev-server"
之类的脚本,然后使用npm run dev
或类似的脚本执行,它将执行在项目webpack-dev-server
中本地安装的node_modules
。
但是,如果您忘记将其添加到项目的依赖项中,并且由于某种原因而已全局安装webpack-dev-server
,它将改为运行那个。
这给我造成了原始问题中描述的困惑。因此,解决方案是使用webpack-dev-server
在我的项目中安装npm install --save-dev webpack-dev-server
。