1.0.0 • Published 2 years ago
packagename-to-path v1.0.0
about
convert project dependent NPM packages into url
use
import packageNameToPath from 'packagename-to-path'
const packageNamePath = packageNameToPath(
[
{
"name": "vue",
"global": "Vue",
"path": (packageinfo) => {
if (packageinfo && packageinfo.name && packageinfo.version && packageinfo.unpkg) {
return `https://unpkg.com/${packageinfo.name}@${packageinfo.version}/${packageinfo.unpkg}`
}
return `https://unpkg.com/vue@3.2.37/dist/vue.global.js`
}
},
{
"name": "vue-router",
"global": "VueRouter",
"path": (packageinfo) => {
if (packageinfo && packageinfo.name && packageinfo.version && packageinfo.unpkg) {
return `https://unpkg.com/${packageinfo.name}@${packageinfo.version}/${packageinfo.unpkg}`
}
return `https://unpkg.com/vue-router@4.0.16/dist/vue-router.global.js`
}
},
{
"name": "vue-demi",
"global": "VueDemi",
"path": "https://unpkg.com/vue-demi@0.13.1/lib/index.iife.js"
},
{
"name": "pinia",
"global": "Pinia",
"path": (packageinfo) => {
if (packageinfo && packageinfo.name && packageinfo.version && packageinfo.unpkg) {
return `https://unpkg.com/${packageinfo.name}@${packageinfo.version}/${packageinfo.unpkg}`
}
return `https://unpkg.com/pinia@2.0.14/dist/pinia.iife.js`
}
},
{
"name": "pinia-plugin-persist",
"global": "piniaPersist",
"path": (packageinfo) => {
if (packageinfo && packageinfo.name && packageinfo.version && packageinfo.unpkg) {
return `https://unpkg.com/${packageinfo.name}@${packageinfo.version}/${packageinfo.unpkg}`
}
return `https://unpkg.com/pinia-plugin-persist@1.0.0/dist/pinia-persist.umd.js`
}
},
{
"name": "axios",
"global": "axios",
"path": (packageinfo) => {
if (packageinfo && packageinfo.name && packageinfo.version && packageinfo.unpkg) {
return `https://unpkg.com/${packageinfo.name}@${packageinfo.version}/${packageinfo.unpkg}`
}
return `https://unpkg.com/axios@0.27.2/dist/axios.min.js`
}
},
{
"name": "dayjs",
"global": "dayjs",
"path": (packageinfo) => {
if (packageinfo && packageinfo.name && packageinfo.version && packageinfo.unpkg) {
return `https://unpkg.com/${packageinfo.name}@${packageinfo.version}/${packageinfo.unpkg}`
}
return `https://unpkg.com/dayjs@1.11.3/dayjs.min.js`
}
},
{
"name": "ant-design-vue",
"global": "antd",
"path": (packageinfo) => {
if (packageinfo && packageinfo.name && packageinfo.version && packageinfo.unpkg) {
return `https://unpkg.com/${packageinfo.name}@${packageinfo.version}/${packageinfo.unpkg}`
}
return `https://unpkg.com/ant-design-vue@3.2.9/dist/antd.min.js`
}
},
{
"name": "ant-design-vue/dist/antd.css",
"path": (packageinfo) => {
if (packageinfo && packageinfo.name && packageinfo.version && packageinfo.unpkg) {
return `https://unpkg.com/${packageinfo.name}@${packageinfo.version}/dist/antd.css`
}
return `https://unpkg.com/ant-design-vue@3.2.9/dist/antd.css`
}
},
{
"name": "lodash",
"global": "_",
"path": (packageinfo) => {
if (packageinfo && packageinfo.name && packageinfo.version && packageinfo.unpkg) {
return `https://unpkg.com/${packageinfo.name}@${packageinfo.version}/${packageinfo.unpkg}`
}
return `https://unpkg.com/lodash@4.17.21/lodash.js`
}
},
{
"name": "mathjs",
"global": "math",
"path": (packageinfo) => {
if (packageinfo && packageinfo.name && packageinfo.version && packageinfo.unpkg) {
return `https://unpkg.com/${packageinfo.name}@${packageinfo.version}/${packageinfo.unpkg}`
}
return `https://unpkg.com/mathjs@10.6.3/lib/browser/math.js`
}
}
]
);
console.log(config);
[
{
name: 'vue',
global: 'Vue',
path: 'https://unpkg.com/vue@3.2.37/dist/vue.global.js'
},
{
name: 'vue-router',
global: 'VueRouter',
path: 'https://unpkg.com/vue-router@4.0.16/dist/vue-router.global.js'
},
{
name: 'vue-demi',
global: 'VueDemi',
path: 'https://unpkg.com/vue-demi@0.13.1/lib/index.iife.js'
},
{
name: 'pinia',
global: 'Pinia',
path: 'https://unpkg.com/pinia@2.0.14/dist/pinia.iife.js'
},
{
name: 'pinia-plugin-persist',
global: 'piniaPersist',
path: 'https://unpkg.com/pinia-plugin-persist@1.0.0/dist/pinia-persist.umd.js'
},
{
name: 'axios',
global: 'axios',
path: 'https://unpkg.com/axios@0.27.2/dist/axios.min.js'
},
{
name: 'dayjs',
global: 'dayjs',
path: 'https://unpkg.com/dayjs@1.11.3/dayjs.min.js'
},
{
name: 'ant-design-vue',
global: 'antd',
path: 'https://unpkg.com/ant-design-vue@3.2.9/dist/antd.min.js'
},
{
name: 'ant-design-vue/dist/antd.css',
path: 'https://unpkg.com/ant-design-vue@3.2.9/dist/antd.css'
},
{
name: 'lodash',
global: '_',
path: 'https://unpkg.com/lodash@4.17.21/lodash.js'
},
{
name: 'mathjs',
global: 'mathjs',
path: 'https://unpkg.com/mathjs@10.6.3/lib/browser/math.js'
}
]
example
vite.config.ts
import injectExternals from 'vite-plugin-inject-externals'
import packageNameToPath from 'packagename-to-path'
{
plugins: [
// ...
injectExternals({
modules: config
})
],
}
1.0.0
2 years ago