node学习之旅

1.node
//参考网站 nodejs.cn
1).源码下载
通过 uname -a 命令查看到我的Linux系统位数是64位
wget http://cdn.npm.taobao.org/dist/node/v10.15.1/node-v10.15.1.tar.gz

	tar -xvzf node-v10.15.1.tar.gz
	
	/******************************************二进制安装****************************/
		wget http://cdn.npm.taobao.org/dist/node/v10.15.1/node-v10.15.1-linux-x64.tar.xz
		2、下载下来的tar文件上传到服务器并且解压,然后通过建立软连接变为全局;

		1)上传服务器可以是自己任意路径,目前我的放置路径为  cd /app/software/

		2)解压上传(解压后的文件我这边将名字改为了nodejs,这个地方自己随意,只要在建立软连接的时候写正确就可以)

			① tar -xvJf    node-v6.10.0-linux-x64.tar.xz   

			② mv node-v6.10.0-linux-x64  nodejs 

			③确认一下nodejs下bin目录是否有node 和npm文件,如果有执行软连接,如果没有重新下载执行上边步骤;

		3)建立软连接,变为全局

		 

		   ①ln -s /app/software/nodejs/bin/npm /usr/local/bin/ 

		 

		   ②ln -s /usr/local/node/bin/node /usr/local/bin/

		 

		4)最后一步检验nodejs是否已变为全局
	/********************************************二进制安装end****************************/
	
	
	/********************************************源码安装***********************************/
	
	/********************************************源码安装end***********************************/
	
		2.进入
			cd node-v10.15.1
			
			./configure
			make
			make install
	
	
2).安转

3).安装成功
	node -v 
	npm -v
	
4).命令行写代码
	node 回车
	console.log('hello')
5).运行代码文件
	node app.js

2.使用PHPstrom创建项目
命令行 输入
npm init 来自动生成package.json

3.安装模块
根目录下会多一个node_modules

npm install jquery

npm install jquery --save //会记录到package.json 中

npm install jquery --save-dev //开发人员记录当前项目使用到的模块

卸载
npm uninstall jquery

4.Express框架
npm install express --save

npmjs.com

http://www.expressjs.com.cn/

5.nidemon 自动根据文件变动重启
npm install -g nodemon //全局安装
nodemon app //启动服务
6.EJS模板引擎

安装
npm install ejs --save-dev

7.webpack
1).创建项目
cd webpack
npm init
//安装 webpack vue vue-loader
npm install webpack vue vue-loader
//警告依赖安装
npm i css-loader vue-template-compiler
//src源码放置的目录
mkdir src
cd src
vi app.vue

		//内容
		<template>
			<div id="text">{{text}}</div>
		</template>

		<script>
			export default {
				data(){
					return {
						text:'longge'
					}
				}
			}
		</script>

		<style>
		#text{
			color:green;
		}
		</style>
		
	//创建口文件
		vi index.js
			
			import Vue from 'vue'

			//导入组件
			import App from './app.vue'
			//声明挂载点
			const root = document.createElement('div');
			//先将挂载点插入到body中
			document.body.appendChild(root);
			//挂载组件
			new Vue({
				render:(h)=> h(App)//h 是Vue里的createApp函数 通过h声明了APP的内容 接下来通过$mount()挂载到一个html节点上
			}).$mount(root);
			
			
	//根目录创建
		vi webpack.conf.js
		
		/**
		 * webpack 是帮我们打包前端资源的
		 * @type {{}}
		 */
		//先声明绝对路径
		const path = require('path');
		module.exports = {
			//入口
			entry: path.join(__dirname,'src/index.js'),
			//出口
			output:{
				filename:'bundle.js',
				path:path.join(__dirname,'dist')
			},
			module:{
				rules:[//因为webpack 不支持.vue后缀的规则 所以在这里加一个规则
					{
						text:/.vue$/,
						loader:'vue-loader'
					}
				]
			}
		};

	//打开package.json
		在scripts节点加入
			"scripts": {
				"build": "webpack --config webpack.conf.js"
			  },

	npm run build
		
		* 出现问题
		ERROR in ./src/app.vue
		Module Error (from ./node_modules/vue-loader/lib/index.js):
		vue-loader was used without the corresponding plugin. Make sure to include VueLoaderPlugin in your webpack config.
		 @ ./src/index.js 4:0-27 11:19-22

		ERROR in ./src/app.vue?vue&type=style&index=0&lang=css& 16:0
		Module parse failed: Unexpected character '#' (16:0)
		You may need an appropriate loader to handle this file type.
		| 
		| 
		> #text{
		|     color:green;
		| }
		 @ ./src/app.vue 4:0-63
		 @ ./src/index.js

		ERROR in ./src/app.vue?vue&type=template&id=5ef48958& 2:0
		Module parse failed: Unexpected token (2:0)
		You may need an appropriate loader to handle this file type.
		| 
		> <div id="text">{{text}}</div>
		| 
		 @ ./src/app.vue 1:0-82 11:2-8 12:2-17
		 @ ./src/index.js


		//解决方案
		webpack.json.js
			加入
			const VueLoaderPlugin = require('vue-loader/lib/plugin');
			module.exports = {
				//入口
				entry: path.join(__dirname,'src/index.js'),
				//出口
				output:{
					filename:'bundle.js',
					path:path.join(__dirname,'dist')
				},
				module:{
					rules:[//因为webpack 不支持.vue后缀的规则 所以在这里加一个规则
						{
							test:/.vue$/,
							loader:'vue-loader'
						},
						{
							test: /\.css$/,
							use: ["vue-style-loader", "css-loader"]
						}
					]
				},
				plugins: [
					new VueLoaderPlugin()
				]
			};


		//在webpack.json.js中配置静态资源的处理
			npm i style-loader url-loader file-loader
			
			//加载css
				{
					test: /\.css$/,
					use: ["vue-style-loader", "css-loader","style-loader"]
				},
				//加载图片
				{
					test:/\.(gif|jpg|jpeg|png|svg)$/,
					use:[
							{
								loader:"url-loader",
								options:{
									limit:1024,//可以把小的图片转换成base64的
									name:'prev-[name].[ext]'//重新定义文件输出的名字
								}
							}
					]
				}
		//安装stylus css预处理文件
		npm i stylus-loader stylus
		
		遇到各种css引入问题
		use:["vue-style-loader","style-loader", "css-loader"]
		
2).webpack-dev-server
	//先安装
	npm i webpack-dev-server
	
	//使用
	在package.json 中加入 
	
	"dev": "webpack-dev-server --config webpack.conf.js"
	如:
	"scripts": {
		"start": "node ./bin/www",
		"build": "webpack --config webpack.conf.js",
		"dev": "webpack-dev-server --config webpack.conf.js"
	  },
	//在webpack.json.js 配置中加入
		target:'web'
	//安装cross-env来区分开发环境跟生产环境
	npm i cross-env
	
	const isDev  = process.env.NODE_ENV === 'development';
	
	//判断是开发环境就单独加一些配置
	if (isDev) {
		config.devServer = {
			port:8000,
			host:'0.0.0.0',
			overlay:{//让错误直接出现在网页上
				errors:true
			}
		};
	}
	
	//安装html 组件来承载入口展示
	npm i html-webpack-plugin 

3.应用开发demo
安装
npm i postcss-loader autoprefixer babel-loader babel-core

根目录创建两个文件

	.babelrc
	    //安装npm i babel-preset-env babel-plugin-transform-vue-jsx

		{
		  "presets": [
			"env"
		  ],
		  "plugins": [
			"transform-vue-jsx" //处理vue里的jsx代码 需要安装
		  ]
		}
		
		//在webpack.conf.js中加入处理jsx的loader
		
			 {
				test:/.jsx$/,
				loader:'babel-loader'
			},
			
			{
                    loader:'postcss-loader',
                    options: {
                        sourceMap:true
                    }
                },
				
			WARN:需要继续安装 npm i babel-helper-vue-jsx-merge-props babel-plugin-syntax-jsx
	.postcss.config.js
		/**
		 * 代码的功能
		 * 我们的stylus css文件编译完成后postcss去优化我们的css代码
		 */
		const autoprefixer = require('autoprefixer');
		module.exports = {
			plugins:[
				autoprefixer()//回去自动加浏览器前缀 让浏览器支持css 比如--webkit--
			]
		}

	*遇到jsx无法解析加载
	//解决方案
	npm i babel-loader@7.1.5 -D
	
	//技巧 删除数组元素
	this.todos.splice(this.todos.findIndex(todo => todo.id === id),1);

4.webpack正式环境打包的优化
1).css 单独拿出来
安装
npm i extract-text-webpack-plugin

	修改webpack.conf.js
	const ExtractPlugin = require('extract-text-webpack-plugin');
	
	*遇到问题 chunk.js的错误
	Vue-Webpack-todo\node_modules\webpack\lib\Chunk.js:460

            throw new Error(

            ^
			Error: Chunk.entrypoints: Use Chunks.groupsIterable and filter by instanceof Entrypoint instead	
	
	//解决方案
	npm install extract-text-webpack-plugin@next

	使用 
	npm i mini-css-extract-plugin
	替换 extract-text-webpack-plugin

5.单独打包类库文件
config.entry = {
app:path.join(__dirname,‘src/index.js’),
vendor:[‘vue’]
};
//单独打包类库文件 配置
config.optimization = {
splitChunks: {
cacheGroups: {
commons: {
name: “vendor”,
chunks: “initial”,
minChunks: 2
}
}
}
};

  1. 安装nvm
    切换淘宝的镜像:
    npm i -g cnpm --registry=https://registry.npm.taobao.org

    安装vue-cli
    npm i -g @vue/cli

    nvm list [available]

    nvm install v11.11.0

深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值