roullup 的 @rollup/plugin-alias 无法生效,打包后需要的模块代码也没有引入

发布于 2022-09-12 02:24:29 字数 1875 浏览 20 评论 0

使用roullup 打包想使用路径别名, 配置了@rollup/plugin-alias, 想通过‘@’访问到 src , 但配置后使用了别名的模块代码在打包后却丢失了, 具体如下

roullup.config.js

`


import json from 'rollup-plugin-json';
import babel from 'rollup-plugin-babel';
import commonjs from 'rollup-plugin-commonjs';
import typescript from 'rollup-plugin-typescript2';
import resolve from 'rollup-plugin-node-resolve';
import alias from '@rollup/plugin-alias';
const path = require('path')


const customResolver = resolve({
  extensions: ['.mjs', '.js', '.jsx', '.json', '.sass', '.scss']
});

export default [
  {
    // 入口文件
    input: 'src/index.js',
    output: [
      {
        file: 'dist/bundle-iife.js',
        format: 'iife',
        name: 'iife'
      }, 
      {
        file: 'dist/bundle-cjs.js',
        format: 'cjs',
        name: "cjs"
      },
      {
        file: 'dist/bundle-umd.js',
        format: 'umd',
        name: "umd"
      }
    ],
    watch: {
      include: 'src/**'
    },
    plugins: [ 
      // 路径别名
      alias({
        entries: [
          { find: '@', replacement: path.resolve(__dirname, '../src') },
        ],
        customResolver
      }),
      resolve(),
      json(),
      commonjs(),
      babel({
        exclude: 'node_modules/**', transpile our source code
        runtimeHelpers: true 
      }),
      typescript({
        declarationDir: true,
        declarationDir: './declare'
      })
    ],
  }
]

`

需要打包的源入口文件:
index.js

`

import { testFn } from '@/module/test.js'

testFn(1, 2)

`

module/test.js
`
export const testFn = (a, b) => a + b
`

打包后结果:

(function (factory) {
    typeof define === 'function' && define.amd ? define(factory) :
    factory();
}((function () { 'use strict';



})));

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文