生成sourceMaphtml
rollup.config.js
文件中找到createConfig
,在函數中添加一行output.sourcemap = true
react
並修改tsconfig.json
中sourceMap
爲true
web
運行
yarn dev reactivity
,能夠看見在packages/reactive
目錄下生成了dist/reactivity.global.js
文件,這個待會咱們調試須要引用到。json
在yarn dev以前,請確保已安裝好其餘依賴。數組
新建
html
文件(/examples/reactive.html
),引入上面生成的*.global.js
文件。瀏覽器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>reactive</title>
</head>
<body>
<!--引入打包好的global.js文件-->
<script src="reactivity/dist/reactivity.global.js"></script>
<script>
const counter = VueObserver.reactive({ num: 0, arr: [1, 2, 3] })
VueObserver.effect(
() => {
console.log('observerd', counter.num)
console.log('observerd', counter.arr)
})
</script>
</body>
</html>
複製代碼
瀏覽器打開html文件若是發現找不到文件的報錯,這時你須要一個server
。 能夠使用rollup-plugin-server-io
插件啓一個服務。bash
yarn add rollup-plugin-server-io -D
rollup.config.js
中import serverIo from 'rollup-plugi-server-io'
import serverIo from 'rollup-plugin-server-io'
function createConfig(output, plugins = []) {
// ...
return {
input: resolve(`src/index.ts`),
// Global and Browser ESM builds inlines everything so that they can be
// used alone.
external: isGlobalBuild || isBrowserESMBuild ? [] : externals,
plugins: [
<!--找到plugins數組,添加以下代碼-->
serverIo({
// 添加你本身根目錄,能夠有多個
webroot: [
path.join(__dirname, 'dist'),
path.join(__dirname, '__test__'),
path.join(__dirname, 'examples'),
path.join(__dirname, 'packages')
],
}),
json({
namedExports: false
}),
tsPlugin,
aliasPlugin,
createReplacePlugin(
isProductionBuild,
isBunlderESMBuild,
(isGlobalBuild || isBrowserESMBuild) &&
!packageOptions.enableNonBrowserBranches
),
...plugins
],
output,
onwarn: (msg, warn) => {
if (!/Circular/.test(msg)) {
warn(msg)
}
}
}
}
複製代碼
從新yarn dev reactivity
,瀏覽器輸入頁面地址就能夠訪問啦,http://localhost:8000/reactive.html
編輯器
接下來就能夠愉快的調試源代碼啦!!函數
若是你使用的是vscode
編輯器, 能夠省略上個步驟,裝一個Live Server
的插件post
找到html文件,右鍵=> open with live server