gpt4 book ai didi

javascript - 在 WebPack 中使用 babel 转译器时出现问题

转载 作者:行者123 更新时间:2023-12-03 06:24:45 25 4
gpt4 key购买 nike

我正在尝试使用 this打包在我的应用程序中。

它似乎是写在 ES6 中的所以我需要一个像 babel 这样的转换器。我已经开始了一个新项目并尝试了以下操作:

  • 创建新的索引 .html/.js 文件以进行测试。
  • npm 安装音频效果
  • npm install gulp gulp-babel babel-preset-es2015
  • 创建.babelrc

尝试使用 python -m SimpleHTTPServerdist 文件夹运行此程序后,出现错误:index.js:3 Uncaught ReferenceError: require is未定义

经过一番挖掘,这是因为require can't be used client-side 。所以接下来我考虑使用 WebPack允许我使用require

我进入我的 dist 文件夹(我的转译 javascript 所在的位置)并运行:

webpack ./index.js index.js

但现在我收到错误 index.js:78 Uncaught SyntaxError: Unexpected token import

任何人都可以看到我缺少的内容(除了 NPM-ES6-Gulp-WebPack 教程)?我似乎陷入了 WebPack 和转译的循环中。

index.html

<!DOCTYPE html>
<html>
<body>

<h4>Welcome</h4>

<button onclick="startAudio()">Start Audio</button>

<script src="js/index.js"></script>
<script type="text/javascript" src="bundle.js" charset="utf-8"></script>

</body>
</html>

index.js(预 babel/WebPack - 化)

import {HasAudioContext} from 'audio-effects';

function startAudio() {
console.log("Start Audio...");

let audioContext = null;
if (HasAudioContext) {
console.log("Has Audio CTX");
audioContext = new AudioContext();
}
else {
console.log("No Audio CTX");
}
}

gulpfile.js

var gulp = require("gulp");
var babel = require("gulp-babel");

gulp.task("default", function () {
return gulp.src("src/app.js")
.pipe(babel())
.pipe(gulp.dest("dist"));
});

最佳答案

我对库做了一些更改(我是该包的原始作者)。使用 npm 安装软件包时,您现在将获得转译的 ES5 代码而不是 ES6 源代码。不过,您仍然需要 webpack、browserify...来加载模块。

这可能会修复Uncaught SyntaxError: Unexpected token import 错误,因此请将您的audio-effects 库更新到最新版本。

Jorawar Singh 的答案中提到的错误导入也应该得到解决。

我仍在开发该库,因此如果您遇到任何问题,请随时在 github 上创建问题或拉取请求。

我个人使用 webpack 的包。这是我的 webpack.config.babel.js 文件(删除注释)。注意:如果您没有将 react 参数设置为 false,我正在使用 React。

import config from 'madewithlove-webpack-config';

export default config({
react: true,
sourcePath: 'src', // Source directory
outputPath: 'builds', // Transpiled coded directory
});

这将从 https://github.com/madewithlove/webpack-config/ 导入基本的 webpack 配置

由于我在 ES6 中编写代码,因此我使用 babel 对其进行转译,我的 .babelrc 文件如下所示:

{
"presets": ["es2015", "stage-0"],
}

完成所有这些设置后,您只需使用 webpack-dev-server --inline --hot 运行 webpack。

您不必使用madewitlove webpack 配置,但它会处理一些标准设置,例如编译 scss 等。

我希望这能让您深入了解如何使用 audio-effects 包或任何其他 ES6 包。

关于javascript - 在 WebPack 中使用 babel 转译器时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38705496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com