我如何通过脚本标签执行/_next/static/xxx.js

问题描述 投票:0回答:1

我已自定义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'
            )
          });
        });
      }
    });
 };
};
javascript next.js
1个回答
0
投票

如果您希望它没有任何webpack内容,为什么将其添加到webpack版本中?

如果这是一个简单的js文件,则将其作为常规静态js文件放入public/(或v9.0.5及以下版本的static/文件夹中。

© www.soinside.com 2019 - 2024. All rights reserved.