parcel.config.js 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. const Bundler = require("parcel-bundler");
  2. const Path = require("path");
  3. // 本来想配一个好一点的 但是好像不太管用 先放着
  4. const isPro = process.env.NODE_ENV === "production" ? true : false;
  5. // 单个入口文件路径
  6. const entryFiles = Path.join(__dirname, "src", "index.html");
  7. // 或多个入口文件路径
  8. // 1.glob模式
  9. // const entryFiles = './src/*.js';
  10. // // 2.数组格式
  11. // const entryFiles = ['./src/index.html', './some/other/directory/scripts.js'];
  12. // Bundler 选项
  13. const options = {
  14. outDir: "./dist", // 将生成的文件放入输出目录下,默认为 dist
  15. outFile: "index.html", // 输出文件的名称
  16. publicUrl: "/", // 静态资源的 url ,默认为 '/'
  17. watch: true, // 是否需要监听文件并在发生改变时重新编译它们,默认为 process.env.NODE_ENV !== 'production'
  18. cache: true, // 启用或禁用缓存,默认为 true
  19. cacheDir: ".cache", // 存放缓存的目录,默认为 .cache
  20. contentHash: false, // 禁止文件名hash
  21. global: "moduleName", // 在当前名字模块以UMD模式导出,默认禁止。
  22. minify: false, // 压缩文件,当 process.env.NODE_ENV === 'production' 时,会启用
  23. scopeHoist: false, // 打开实验性的scope hoisting/tree shaking用来缩小生产环境的包。
  24. target: "browser", // browser/node/electron, 默认为 browser
  25. bundleNodeModules: false, // 当package.json的'target'设置'node' or 'electron'时,相应的依赖不会加入bundle中。设置true将被包含。
  26. // https: { // 设置true自动定义一对密钥和证书,false取消变成http
  27. // cert: './ssl/c.crt', // 自定义证书路径
  28. // key: './ssl/k.key' // 自定义密钥路径
  29. // },
  30. logLevel: 3,
  31. /**
  32. * 5 = 储存每个信息
  33. * 4 = 输出信息、警告和错误附加时间戳和dev服务的http请求
  34. * 3 = 输出信息、警告和错误
  35. * 2 = 输出警告和错误
  36. * 1 = 输出错误
  37. */
  38. hmr: true, // 开启或禁止HRM
  39. hmrPort: 9090, // hmr socket 运行的端口,默认为随机空闲端口(在 Node.js 中,0 会被解析为随机空闲端口)
  40. sourceMaps: isPro ? true : false, // 启用或禁用 sourcemaps,默认为启用(在精简版本中不支持)
  41. hmrHostname: "", // 热模块重载的主机名,默认为 ''
  42. detailedReport: false, // 打印 bundles、资源、文件大小和使用时间的详细报告,默认为 false,只有在禁用监听状态时才打印报告
  43. port:8000
  44. };
  45. (async function() {
  46. // 使用提供的入口文件路径和选项初始化 bundler
  47. const bundler = new Bundler(entryFiles, options);
  48. // 运行 bundler,这将返回主 bundle
  49. // 如果你正在使用监听模式,请使用下面这些事件,这是因为该 promise 只会触发一次,而不是每次重新构建时都触发
  50. const bundle = await bundler.bundle();
  51. })();