webpack 添加javascript原始文件(不是模块)以构建

ff29svar  于 2022-11-13  发布在  Webpack
关注(0)|答案(1)|浏览(132)

我已经使用代码拆分分离了以下文件,以便能够在自己的构建中动态地更改它(无需重新编译):

// app/src/env.ts

window.process.env.API_HOST = 'http://localhost:8000'
window.process.env.NODE_ENV = 'development'

但我生成的JS文件看起来像这样:

// app/build/env.bundle.js

"use strict";
(self["webpackChunkmypackage"] = self["webpackChunkmypackage"] || []).push([[338],{

/***/ 7100:
/***/ (() => {

window.process.env.API_HOST = 'http://localhost:8000';
window.process.env.NODE_ENV = 'development';

/***/ })

}]);
//# sourceMappingURL=env.bundle.js.map

有没有可能用一些加载程序来保持这个特定文件的原始格式?

jq6vz3qz

jq6vz3qz1#

我用webpack的CopyPlugin解决了这个问题。在你的项目中创建你的原始javascript文件,然后让webpack把它放在构建的顶层:

plugins: [
      new CopyPlugin({
        patterns: [
          // copy "src/env.js" to top level of build ("build/env.js")
          { from: './src/env.js', to: '.' },
        ]
      })
    ],

手动将该文件添加到SPA的html入口点:

<html lang="en-US">

<head>
  <meta charset="utf-8">
  <title>Your app</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <!-- Following line imports the file manually -->
  <script src="/env.js"></script>
</head>

<body>
    <noscript>Enabling JavaScript is required to run this app.</noscript>
    <div id="root"></div>
</body>

</html>

相关问题