"version": "2.0.0-rc.14",
"description": "Intuitive, type safe and flexible Store for Vue",
"main": "index.js",
- "module": "dist/pinia.esm-bundler.js",
+ "module": "dist/pinia.mjs",
"unpkg": "dist/pinia.iife.js",
"jsdelivr": "dist/pinia.iife.js",
"types": "dist/pinia.d.ts",
"exports": {
".": {
- "import": {
- "node": "./index.mjs",
- "default": "./dist/pinia.esm-bundler.js"
+ "browser": "./dist/pinia.esm-browser.js",
+ "node": {
+ "import": {
+ "production": "./dist/pinia.prod.cjs",
+ "development": "./dist/pinia.mjs",
+ "default": "./dist/pinia.mjs"
+ },
+ "require": {
+ "production": "./dist/pinia.prod.cjs",
+ "development": "./dist/pinia.cjs",
+ "default": "./index.js"
+ }
},
- "require": "./index.js"
+ "import": "./dist/pinia.mjs"
},
"./package.json": "./package.json",
- "./index.mjs": "./index.mjs",
"./dist/*": "./dist/*"
},
"sideEffects": false,
},
"funding": "https://github.com/sponsors/posva",
"scripts": {
- "build": "rimraf dist && rollup -c ../../rollup.config.js --environment TARGET:pinia && cp dist/pinia.esm-bundler.js index.mjs",
+ "build": "rimraf dist && rollup -c ../../rollup.config.js --environment TARGET:pinia",
"build:dts": "api-extractor run --local --verbose && tail -n +3 ./src/globalExtensions.ts >> dist/pinia.d.ts",
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s --commit-path . -l pinia -r 1",
"test:dts": "tsc -p ./test-dts/tsconfig.json",
"dist/*.cjs",
"dist/pinia.d.ts",
"index.js",
- "index.mjs",
+ "index.cjs",
"LICENSE",
"README.md"
],
format: `es`,
},
cjs: {
- file: pkg.module.replace('esm-bundler', 'cjs'),
+ file: pkg.module.replace('mjs', 'cjs'),
format: `cjs`,
},
global: {
file: pkg.unpkg,
format: `iife`,
},
+ browser: {
+ file: 'dist/pinia.esm-browser.js',
+ format: `es`,
+ },
}
-const allFormats = Object.keys(outputConfigs)
-const packageFormats = allFormats
-const packageConfigs = packageFormats.map((format) =>
+const packageBuilds = Object.keys(outputConfigs)
+const packageConfigs = packageBuilds.map((format) =>
createConfig(format, outputConfigs[format])
)
// only add the production ready if we are bundling the options
-packageFormats.forEach((format) => {
- if (format === 'cjs') {
- packageConfigs.push(createProductionConfig(format))
- } else if (format === 'global') {
- packageConfigs.push(createMinifiedConfig(format))
+packageBuilds.forEach((buildName) => {
+ if (buildName === 'cjs') {
+ packageConfigs.push(createProductionConfig(buildName))
+ } else if (buildName === 'global') {
+ packageConfigs.push(createMinifiedConfig(buildName))
}
})
export default packageConfigs
-function createConfig(format, output, plugins = []) {
+function createConfig(buildName, output, plugins = []) {
if (!output) {
- console.log(require('chalk').yellow(`invalid format: "${format}"`))
+ console.log(require('chalk').yellow(`invalid format: "${buildName}"`))
process.exit(1)
}
'@vue/composition-api': 'vueCompositionApi',
}
- const isProductionBuild = output.file.endsWith('.prod.js')
- const isGlobalBuild = format === 'global'
- const isRawESMBuild = format === 'esm'
- const isNodeBuild = format === 'cjs'
- const isBundlerESMBuild = format === 'esm' || format === 'mjs'
+ const isProductionBuild = /\.prod\.[cmj]s$/.test(output.file)
+ const isGlobalBuild = buildName === 'global'
+ const isRawESMBuild = buildName === 'browser'
+ const isNodeBuild = buildName === 'cjs'
+ const isBundlerESMBuild = buildName === 'browser' || buildName === 'mjs'
if (isGlobalBuild) output.name = pascalcase(pkg.name)
})
}
-function getProdFileName(format, name) {
- return `dist/${name}.${format}.prod.js`
-}
-
function createProductionConfig(format) {
+ const extension = format === 'cjs' ? 'cjs' : 'js'
+ const descriptor = format === 'cjs' ? '' : `.${format}`
return createConfig(format, {
- file: getProdFileName(format, name),
+ file: `dist/${name}${descriptor}.prod.${extension}`,
format: outputConfigs[format].format,
})
}
return createConfig(
format,
{
- file: getProdFileName(format, name),
+ file: `dist/${name}.${format === 'global' ? 'iife' : format}.prod.js`,
format: outputConfigs[format].format,
},
[