Raf*_*ski 21 javascript node.js webpack
有没有办法让Webpack保持#!/usr/bin/env node
在我的文件的顶部?
我正在尝试将CLI与模块捆绑在一起... index.js / cli.js
仅使用一个配置文件单独导出我有点棘手...并且使cli需要索引...我得到了它...
但是..我没有找到任何方法来保持#!/usr/bin/env node
我的cli文件的顶部,任何想法?
简而言之,webpack输出如下文件:
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId])
/******/ return installedModules[moduleId].exports;
..............................................................
Run Code Online (Sandbox Code Playgroud)
但我需要的是
#!/usr/bin/env node //<------ HEREEEE
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId])
/******/ return installedModules[moduleId].exports;
..............................................................
Run Code Online (Sandbox Code Playgroud)
spa*_*33z 29
您应该可以将BannerPlugin与原始模式一起使用.使用此插件,您可以在捆绑包顶部添加所需的任何字符串.通过使用原始模式,它不会将字符串包装在注释中.
在您的webpack.config.js
文件中:
plugins: [
new webpack.BannerPlugin({ banner: "#!/usr/bin/env node", raw: true }),
]
Run Code Online (Sandbox Code Playgroud)
现在,您可以使用webpack-shebang-plugin作为一体化工具集,将 hashbang 保留在源条目文件中。
BannerPlugin 仅将 hashbang 添加到您的输出包中,但它不会:
删除源文件中的 hashbang,这会作为 webpack 语法检查错误出现。您还需要一个shebang-loader或babel-plugin-shebang来处理源文件。
确保输出包的文件权限为“可执行”。当您在本地通过 npm 链接项目来测试 bin 文件时,这非常有用。
这些都是由webpack-shebang-plugin通过简单调用来完成的
new ShebangPlugin()
Run Code Online (Sandbox Code Playgroud)
,并且是可配置的。
归档时间: |
|
查看次数: |
4664 次 |
最近记录: |