webpack打包,生成js,提供給node和瀏覽器使用

目標

1. 打包後,node和瀏覽器可以使用.
2. 能夠做爲SDK提供給node,或者是前端
3. 打包後,能夠發佈npm包
複製代碼

項目搭建

1: 項目初始化

1. mkdir webpack-build
2. cd webpack-build
3. npm init,不停回車,而後最後輸入yes便可
複製代碼

2: 文件列表

|
| - package.json
| - webpack.config.js
| - node_modules
| - index.js
| - dist
複製代碼

3: webpack配置

webpack.config.js配置以下:javascript

const path = require("path");
module.exports = {
  mode: "production",
  entry: "./index.js",
  output: {
    path: path.resolve(__dirname, "./dist"),
    filename: "webpack-numbers.js",
    libraryTarget: "umd",
    globalObject: "this",
    library: "webpackNumbers"
  }
};

複製代碼

此處須要進行設置,這樣就可以使用在node和瀏覽器中html

libraryTarget: "umd" globalObject: "this"前端

4: index.js編寫

export function numToWord(num) {
  return console.log('object')
}
複製代碼

package.json編寫

{
  "name": "test-webpack",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "webpack"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "babel-core": "^6.26.0",
    "babel-loader": "^7.1.4",
    "babel-plugin-add-module-exports": "^0.2.1",
    "babel-preset-env": "^1.6.1",
    "eslint": "^3.9.1",
    "eslint-loader": "^1.6.1",
    "lodash": "^4.16.6",
    "webpack": "^4.20.2",
    "webpack-cli": "^3.1.1"
  }
}
運行:npm run build,會在dist目錄下生成webpack-numbers.js文件
複製代碼

使用webpack-numbers.js文件

1. cd dist
2. touch test.js
複製代碼

編寫test.js文件:java

let app = require("./webpack-numbers.js");
let data = app.numToWord();
console.log(data);

複製代碼
1. node中使用,應用打包後的webpack-numbers.js,node test.js
2. 瀏覽器中使用
    <html>
      <head>
        <title>webpack library example - Transalating numbers</title>
        <script
          type="text/javascript"
          src="https://unpkg.com/lodash@4.16.6"
        ></script>
      </head>
      <body>
        <div id="root"></div>
        <script type="text/javascript" src="./webpack-numbers.js"></script>
        <script type="text/javascript">
          console.log(webpackNumbers.wordtonum("One"));
        </script>
      </body>
    </html>
複製代碼

npm包發佈

1. 修改package.json,修改main中,"./dist/webpack-numbers.js"
{
  "name": "test-webpack",
  "version": "1.0.0",
  "description": "",
  "main": "./dist/webpack-numbers.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "webpack"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "babel-core": "^6.26.0",
    "babel-loader": "^7.1.4",
    "babel-plugin-add-module-exports": "^0.2.1",
    "babel-preset-env": "^1.6.1",
    "eslint": "^3.9.1",
    "eslint-loader": "^1.6.1",
    "lodash": "^4.16.6",
    "webpack": "^4.20.2",
    "webpack-cli": "^3.1.1"
  }
}
2. npm adduser, 寫入 user password emial
3. npm pubilsh,從而能夠實現發佈,能夠npm網站查看本身的包
複製代碼
相關文章
相關標籤/搜索