vite-plugin-fast-external
Advanced tools
Comparing version 1.4.5 to 1.4.6
@@ -19,3 +19,3 @@ import { Plugin, UserConfig } from 'vite'; | ||
*/ | ||
optimize: boolean; | ||
optimizeDepsExclude: boolean; | ||
}, | ||
@@ -22,0 +22,0 @@ ): Plugin; |
@@ -13,3 +13,3 @@ const fs = require('fs'); | ||
let externalDir = '.vite-plugin-fast-external'; | ||
const { format = 'esm', optimize = true } = options; | ||
const { format = 'esm', optimizeDepsExclude = true } = options; | ||
@@ -28,3 +28,3 @@ return { | ||
if (optimize) modifyOptimizeDepsExclude(config, Object.keys(external)); | ||
if (optimizeDepsExclude) modifyOptimizeDepsExclude(config, Object.keys(external)); | ||
@@ -31,0 +31,0 @@ modifyAlias( |
{ | ||
"name": "vite-plugin-fast-external", | ||
"version": "1.4.5", | ||
"version": "1.4.6", | ||
"description": "Without lexical transform, support custom external code.", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -8,6 +8,6 @@ # vite-plugin-fast-external | ||
> Without lexical transform, support custom external code | ||
**English | [简体中文](https://github.com/caoxiemeihao/vite-plugins/blob/main/packages/fast-external/README.zh-CN.md)** | ||
- Without lexical transform, support custom external code. | ||
- Like Webpack externals, support browser, Node.js and Electron -- without environment | ||
@@ -27,3 +27,3 @@ | ||
// Custom external code snippets used in Node.js | ||
nodeJsModule: () => `module.exports = require('moduleId');`, | ||
nodeJsModule: () => `export default require('moduleId');`, | ||
}) | ||
@@ -54,2 +54,5 @@ ``` | ||
externalId: async () => await require('fs').promises.readFile('path', 'utf-8'), | ||
// Electron Renderer-process | ||
electron: () => `const { ipcRenderer } = require('electron'); export { ipcRenderer }`, | ||
}) | ||
@@ -83,16 +86,39 @@ ] | ||
1. External-module will be generated code into `node_modules/.vite-plugin-fast-external/vue.js` | ||
2. Append an external-module alias | ||
**Let's use Vue as an example** | ||
```js | ||
{ | ||
resolve: { | ||
alias: [ | ||
{ | ||
find: 'vue', | ||
replacement: 'User/work-directory/node_modules/.vite-plugin-fast-external/vue.js', | ||
}, | ||
], | ||
}, | ||
} | ||
``` | ||
```js | ||
fastExternal({ | ||
vue: 'Vue', | ||
}) | ||
``` | ||
1. Create `node_modules/.vite-plugin-fast-external/vue.js` and contains the following code | ||
```js | ||
const vue = window['Vue']; export { vue as default } | ||
``` | ||
2. Create a `vue` alias item and add it to `resolve.alias` | ||
```js | ||
{ | ||
resolve: { | ||
alias: [ | ||
{ | ||
find: 'vue', | ||
replacement: 'User/work-directory/node_modules/.vite-plugin-fast-external/vue.js', | ||
}, | ||
], | ||
}, | ||
} | ||
``` | ||
3. Add `vue` to the `optimizeDeps.exclude` **by default**. You can disable it through `options.optimizeDepsExclude` | ||
```js | ||
export default { | ||
optimizeDeps: { | ||
exclude: ['vue'], | ||
}, | ||
} | ||
``` |
@@ -8,6 +8,6 @@ # vite-plugin-fast-external | ||
> 不使用语法转换, 支持自定义 external 代码段 | ||
**[English](https://github.com/caoxiemeihao/vite-plugins/tree/main/packages/fast-external#readme) | 简体中文** | ||
- 不使用语法转换, 支持自定义 external 代码段 | ||
- 类似 webpack 的 externals,支持浏览器、Node.js、Electron 等多环境 -- 环境无关 | ||
@@ -27,3 +27,3 @@ | ||
// 自定义 external 代码段在 Node.js 中使用 | ||
nodeJsModule: () => `module.exports = require('模块ID');`, | ||
nodeJsModule: () => `export default require('moduleId');`, | ||
}) | ||
@@ -54,2 +54,5 @@ ``` | ||
externalId: async () => await require('fs').promises.readFile('path', 'utf-8'), | ||
// 在 Electron 渲染进程中使用 | ||
electron: () => `const { ipcRenderer } = require('electron'); export { ipcRenderer }`, | ||
}) | ||
@@ -76,3 +79,3 @@ ] | ||
*/ | ||
optimize: boolean | ||
optimizeDepsExclude: boolean | ||
} | ||
@@ -84,16 +87,39 @@ ) => VitePlugin | ||
1. external 在 vite 启动时会将代码段生成到对应的文件,比如 `node_modules/.vite-plugin-fast-external/vue.js` | ||
2. 并且在 `resolve.alias` 插入 external 和生成文件的对应配置 | ||
**用 Vue 来举个 🌰** | ||
```js | ||
{ | ||
resolve: { | ||
alias: [ | ||
{ | ||
find: 'vue', | ||
replacement: 'User/work-directory/node_modules/.vite-plugin-fast-external/vue.js', | ||
}, | ||
], | ||
}, | ||
} | ||
``` | ||
```js | ||
fastExternal({ | ||
vue: 'Vue', | ||
}) | ||
``` | ||
1. 创建 `node_modules/.vite-plugin-fast-external/vue.js` 文件并包含下面的代码 | ||
```js | ||
const vue = window['Vue']; export { vue as default } | ||
``` | ||
2. 创建一个 `vue` 的别名项,并且添加到 `resolve.alias` | ||
```js | ||
{ | ||
resolve: { | ||
alias: [ | ||
{ | ||
find: 'vue', | ||
replacement: 'User/work-directory/node_modules/.vite-plugin-fast-external/vue.js', | ||
}, | ||
], | ||
}, | ||
} | ||
``` | ||
3. 默认会将 `vue` 添加到 `optimizeDeps.exclude` 中. 你可以通过 `options.optimizeDepsExclude` 禁用 | ||
```js | ||
export default { | ||
optimizeDeps: { | ||
exclude: ['vue'], | ||
}, | ||
} | ||
``` |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
11741
121