我自定义了 next.config (webpack) 来构建静态 js 文件 (.next/static/loader.js
)。
原始的loader.js
是一个IIFE:
(function stickerLoader(){
alert('Hello');
// ... some source code
}())
其用法如下:
<script type="text/javascript" src="/_next/static/loader.js"></script>
但是,上面的代码不会立即执行,因为它被编译为:
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["static/loader.js"],{
/***/ "./components/Sticker/loader.js":
/*!**************************************!*\
!*** ./components/Sticker/loader.js ***!
\**************************************/
/*! no static exports found */
/***/ (function(module, exports) {
(function stickerLoader() {
alert('Hello');
// ... some minified source code
})();
/***/ })
},[["./components/Sticker/loader.js","static/runtime/webpack.js"]]]);
Next.js 是否有任何设置可以删除 WEBPACK WRAPPER
,并仅保留我的源代码,所以我的预期结果如下:
(function stickerLoader() {
alert('Hello');
// ... some minified source code
})();
我的next.config.js
:
module.exports = {
webpack(config, options) {
return merge(config, {
entry() {
return config.entry().then(entry => {
return Object.assign({}, entry, {
'static/loader.js': path.resolve(
__dirname,
'components',
'Sticker',
'loader.js'
)
});
});
}
});
};
};
最佳答案
如果你想要它没有任何 webpack 东西,为什么要把它添加到 webpack 构建中?
如果这是一个简单的js文件,请将其作为常规静态js文件放入public/
(或v9.0.5及以下版本的static/
)文件夹中。
关于javascript - 我如何通过脚本标签执行/_next/static/xxx.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59241915/